“ ” ‘ ’
由于我的应用程序中存在编码问题,我需要用常规引号(’和“)替换Microsoft
Word的单引号和双引号()版本。我不需要它们成为HTML实体,也无法更改数据库架构。
我有两个选择:使用正则表达式或关联的数组。
有一个更好的方法吗?
考虑到您只想替换一些特定且标识明确的字符,我将str_replace
使用一个数组:显然,您不需要重型大炮正则表达式将带给您;-)
并且,如果您遇到其他一些特殊字符(MicrosoftWord的该死的复制粘贴…),则可以仅在必要时/在识别它们后将它们添加到该数组中。
我可以给您的评论最好的答案可能是此链接:用PHP转换智能报和相关的代码 (引用该页面) :
function convert_smart_quotes($string)
{
$search = array(chr(145),
chr(146),
chr(147),
chr(148),
chr(151));
$replace = array("'",
"'",
'"',
'"',
'-');
return str_replace($search, $replace, $string);
}
(我在这台计算机上没有Microsoft Word,因此我无法自己进行测试)
我不记得我们在工作中使用了什么 (我不是那种必须处理这种输入的人) ,但是那是一类的东西……