小编典典

如何在PHP中替换Microsoft编码的引号

php

“ ” ‘ ’由于我的应用程序中存在编码问题,我需要用常规引号(’和“)替换Microsoft
Word的单引号和双引号()版本。我不需要它们成为HTML实体,也无法更改数据库架构。

我有两个选择:使用正则表达式或关联的数组。

有一个更好的方法吗?


阅读 350

收藏
2020-05-26

共1个答案

小编典典

考虑到您只想替换一些特定且标识明确的字符,我将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,因此我无法自己进行测试)

我不记得我们在工作中使用了什么 (我不是那种必须处理这种输入的人) ,但是那是一类的东西……

2020-05-26