获取例如aAAAxAAAa里的x规则的PHP方法
程序员文章站
2024-01-16 08:18:04
...
至于这个问题,我刚刚小小修改了一下我的程序,现在答案已经出来,请哪位PHP大牛帮我优化一下我的代码结构!谢谢啦!
1.FILENAME.php
<?php /** * * @author 冷流云 * @param 新浪微博 http://weibo.com/130326007 */ function getLower($data){ $length = strlen($data)-1; $str = ''; for ($i=0;$i<$length;$i++){ $flag = true; if(!isUpper($data[$i])){//当前为小写 成立 if($i == 3){ $flag = getFlag($data,$i); //如果后第四个是大写 不成立 if(isUpper($data[$i+4])){ $flag = false; } }else if($i == $length-3){ $flag = getFlag($data,$i); //如果前第四个是大写 不成立 if(isUpper($data[$i-4])){ $flag = false; } }else if($i>3 && $i<$length-3){ $flag = getFlag($data,$i); //如果前||后第四个有一个是大写就不成立 if(isUpper($data[$i+4]) || isUpper($data[$i-4])){ $flag = false; } }else{ $flag = false; } if($flag){ @$str .= $data[$i]; } } } return $str; } //公共当前字符的前三后和三个 function getFlag($data,$i){ $flag = true; for($j=$i-3;$j<=$i+3;$j++){ if($j != $i){ //如果有一个是小写就不成立 if(!isUpper($data[$j])){ $flag = false; } } } return $flag; } /** * * 判断是否是大写字母 */ function isUpper($s){ if(@ord($s) < 97){ return true; }else{ return false; } } $res = ''; $handle = fopen("./input.txt",'r'); $d = fread($handle,filesize("./input.txt")); $res = getlower(str_replace("\r\n","",$d)); /*while(!feof($handle)){//逐行读取方法 $buffer = fgets($handle,4096); $res .= getlower($buffer); }*/ echo $res; fclose($handle); ?>