我想用空白的东西替换文本中的一些特殊字符:
<?php
$ar = ' بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ ';
echo str_replace('/[\u064b-\u0653]/g','', $ar);
echo '<br />';
?>
句子不是替换,有什么想法吗?
提前致谢
答案 0 :(得分:2)
您需要使用preg_replace
来使用正则表达式。
使用&#34; u&#34;用于启用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:
你是(PCRE_UTF8)此修饰符打开与Perl不兼容的PCRE的其他功能。 模式和主题字符串被视为 UTF-8。在Unix上可以从PHP 4.1.0或更高版本获得此修饰符 从win32上的PHP 4.2.3开始。 UTF-8模式的有效性和 从PHP 4.3.5开始检查主题。无效的主题将导致 preg_ *函数不匹配;无效模式将触发一个 级别错误E_WARNING。五个和六个八位字节UTF-8序列 自PHP 5.3.4起被视为无效(分别为PCRE 7.3 2007-08-28); 以前那些被认为是有效的UTF-8。