PHP处理特殊字符比对

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;
		}
	}




原文链接: PHP处理特殊字符比对 版权所有,转载时请注明出处,违者必究。
注明出处格式:流沙团 ( http://www.gyarmy.com/post-600.html )

发表评论

0则评论给“PHP处理特殊字符比对”