PHP正则表达式打破特殊字符

时间:2016-06-10 14:49:26

标签: php html regex character-encoding special-characters

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") 
    )
  )
); 

结果是:

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

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

1 个答案:

答案 0 :(得分:1)

如果您将字符编码设置为正确,则没有问题。查看您在eval.in上运行的代码。

确保在您的html文档中包含此内容:

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

并将您的PHP文件保存为UTF-8编码。根据您的编辑器,这可能是&#34;另存为&#34;对话框,或在&#34;偏好&#34;或&#34;选项&#34;菜单。