替换一些字符

时间:2014-08-30 18:25:23

标签: php replace arabic

我想用空白的东西替换文本中的一些特殊字符:

<?php
$ar = ' بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ ';
echo str_replace('/[\u064b-\u0653]/g','', $ar);
echo '<br />';
?>

句子不是替换,有什么想法吗?

提前致谢

1 个答案:

答案 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。