我想用空白内容替换文本中的一些特殊字符:
<?php
$ar = ' بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ ';
echo str_replace('/[\u064b-\u0653]/g','', $ar);
echo '<br />';
?>
这句话不能代替,有什么主意吗?
提前致谢
您需要使用preg_replace
来使用正则表达式。
使用“ u”修饰符启用unicode支持,没有/ g修饰符afaik ...
<?php
$ar = ' بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ ';
echo preg_replace('/[\\x{064b}-\\x{0653}]/u','', $ar);
echo '<br />';
?>
参见http://php.net/manual/en/reference.pcre.pattern.modifiers.php:
u(PCRE_UTF8)
此修改器打开了与Perl不兼容的PCRE的其他功能。模式和主题字符串被视为UTF-8。Unix上的PHP 4.1.0或更高版本以及win32上的PHP 4.2.3可使用此修饰符。从PHP 4.3.5开始,将检查模式和主题的UTF-8有效性。无效的主题将导致preg_ *函数不匹配任何内容。无效的模式将触发E_WARNING级别的错误。自PHP 5.3.4起(分别为PCRE 7.3 2007-08-28),五个和六个八位字节的UTF-8序列被视为无效;以前那些被认为是有效的UTF-8。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句