0x01 处理需求:
第一组:空格替换为去掉,有小空格和大空格都要去掉;
第二组:—和-;
第三组:大小括号替换,统一成小括号。()()
第四组:斜杠替换,/替换/。
第五组:【替换为[,】替换为]。
第六组:英文字母大小写替换。
第七组:回车符、切换符替换为去掉。
将这些特殊字符处理后,再进行数据比对,判断是否合格
0x02 代码实现
实现思路,
读出特殊字符的二进制码, 然后针对二进制码,进行数据处理
<?php $keyword = '11 12 223 33'; echo '<pre>'.$keyword.'<br>'; $arr_kwd = str_split($keyword); foreach ($arr_kwd as $kwd) { echo $kwd . ',' . ord($kwd) . "<br>"; } //处理特殊字符 function trimString($str){ if(is_string($str)){ //处理空格: //特殊空格 $str = str_replace(chr(194).chr(160), '', $str); //特殊空格 中文空格 $str = str_replace(chr(227).chr(128).chr(128), '', $str); //普通空格 $str = str_replace(chr(32), '', $str); //处理\t $str = str_replace(chr(9), '', $str); //处理— 转为- $str = str_replace(chr(226).chr(128).chr(148), '-', $str); //处理() $str = str_replace(chr(239).chr(188).chr(136), '(', $str); $str = str_replace(chr(239).chr(188).chr(137), ')', $str); //处理 / $str = str_replace(chr(239).chr(188).chr(143), '/', $str); //处理 【】 $str = str_replace(chr(227).chr(128).chr(144), '[', $str); $str = str_replace(chr(227).chr(128).chr(145), ']', $str); //处理回车换行 $str = str_replace(chr(13).chr(10), '', $str); //英文字母转大写 $str = strtoupper($str); } return $str; } $aaa = trimString($keyword); var_dump($aaa); function compareTirmString($str1,$str2){ $str3 = trimString($str1); $str4 = trimString($str2); if($str3 == $str4){ return true; }else{ return false; } }
0则评论给“PHP处理特殊字符比对”