2016-06-10 79 views
0
var_dump(
    preg_replace( 
    array( 
     '#[\s\n\\n]*<[\/\s]?(br|/p|/div)[\/\s]?>[\s\n\\n]*#iu', '#\s+#'), 
     ' ', "A 19th century Dutch walnut secrétaire à abattant") 
    ) 
) 
); 

结果是:PHP正则表达式打破特殊字符

string(102) "A 19th century Dutch walnut secrétaire � abattant" 

为什么我的正则表达式在PHP打破特殊字符?

+1

我觉得很奇怪它仍然保留''而不是'à'。 –

+4

添加元标记标记 –

+0

我更新了问题。对不起,读取错误的调试跟踪 –

回答

1

如果你设置你的字符编码权,没有问题。看到你的代码在eval.in上运行。

确保有这个HTML文档中:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
</head> 

,也是你的PHP文件保存为UTF-8编码。根据您的编辑器,这可能是“另存为”对话框中或“首选项”或“选项”菜单下的选项。

+0

这个答案适合您的需求吗?你可以提供一些反馈吗? – trincot