这很奇怪,我在网上找不到类似的东西。
我在希腊字符中有一个包含很多特殊字符的字符串表,所以我想删除它们。
function clean($string) {
$string = preg_replace('/([$@!\?!\+\#\%\^\*\[\]\<\>\;\:\'\"\`\~\,\?\_\=\«\»])+/', ' ' ,$string);
$string = preg_replace('/\s+/', ' ',$string);
return $string;
}
$prok=clean($row['name']);
echo $row['name'].'-'.$prok;
这是正常的,除非字符Π
在字符串中。
如果是,Π
将替换为问号。
有谁知道问题可能是什么?
答案 0 :(得分:1)
您可以尝试使用mb_ereg_replace
来支持多字节:
function clean($string) {
$string = mb_ereg_replace('/([$@!\?!\+\#\%\^\*\[\]\<\>\;\:\'\"\`\~\,\?\_\=\«\»])+/', ' ' ,$string);
$string = mb_ereg_replace('/\s+/', ' ',$string);
return $string;
}
$prok=clean($row['name']);
echo $row['name'].'-'.$prok;
或者将/u
修饰符用于unicode字符串:
function clean($string) {
$string = preg_replace('/([$@!\?!\+\#\%\^\*\[\]\<\>\;\:\'\"\`\~\,\?\_\=\«\»])+/u', ' ' ,$string);
$string = preg_replace('/\s+/u', ' ',$string);
return $string;
}
$prok=clean($row['name']);
echo $row['name'].'-'.$prok;