我有两个字符需要在php-string中进行搜索和替换。
’
“
不知何故,这些与以下不同:
'
"
有谁知道我可能会用什么函数从php字符串中删除它们?
答案 0 :(得分:2)
当有人在Outlook中向您发送电子邮件时会发生这种情况,因此请注意,因为您完全错过了那些单引号的开头对,并且双引号结束了对。 But really, you need to be using html entity codes。
为什么呢?因为在荒野中有比你上面发布的那两个代码更多的地狱,事实上,你只显示了一组报价(即,你错过了收盘单引号,并打开双引号) 。有数百个,你需要以比字符串替换更好的方式对它们进行编码。
有几种方法可以管理从编码到html实体的翻译。
http://php.net/manual/en/function.htmlentities.php
http://piology.org/entities.html
http://konieczny.be/unicode.html
还有更多,但他们基本上做同样的事情。
答案 1 :(得分:1)
在保存为UTF-8的PHP脚本中(以便正确地重新呈现这些字符),您只需使用str_replace
去除它们。
答案 2 :(得分:1)
你所拥有的是智能引号或引号。有人在做类似的事情。 Chris Shiflett
答案 3 :(得分:0)
检查一下,我一直在使用它并且它有效:
答案 4 :(得分:0)
为什么不使用str_replace
?
$new_str = str_replace(array('’', '“'), '', $str);
当然,这需要将PHP脚本保存为UTF-8。
如果这不起作用,因为这些字符无法使用UTF-8正确编写,您将不得不回退使用它们的十六进制表示。
例如:
$new_str = str_replace(array('\xC2\x91', '\xC2\x93'), '', $str);
(不确定我使用的十六进制值是否真的是你的两个特殊引号)