0

我将 json 数据作为字符串传递给 javascript。不过,在传递字符串之前,我正在 php 中搜索所有双引号并替换它们。这工作正常,但一些 json 字符串(看起来像)一个 MS Word 样式的双引号,可能是斜体。所以我的<?php $t = str_replace("”", "", $t); ?>方法调用没有转义特殊的双引号。

我是否需要找到字符码并将其转义?我尝试将引号从字符串中拼接出来,然后将其粘贴到 php 方法中,但它仍然无法将该字符识别为不同的双引号。

让我看看我是否可以在此处粘贴报价 -< “ >< ” >

谢谢你。

4

2 回答 2

4
<?php
function mb_str_replace($needle, $replacement, $haystack) {
   return implode($replacement, mb_split($needle, $haystack));
}
$t = "as“da”sd";
$t = mb_str_replace("”", "", $t); 
$t = mb_str_replace("“", "", $t); 
#and all the other weird quotes :)
echo $t;
?>

http://php.net/manual/en/ref.mbstring.php

http://www.regular-expressions.info/unicode.html

我建议改用 preg_replace

$t = "as“da”sd";
$t = preg_replace("/[”“]/u","",$t); #just create a character class
echo $t;

这也可能有用: http ://axonflux.com/handy-regexes-for-smart-quotes

于 2011-12-08T19:52:37.233 回答
1

我自己试过了,所以我唯一能想到的就是你必须使用 UTF-8 编码。

<?php
    header('content-type: text/html; charset=utf-8');
    $str = "“ > and < ”\"";
    $replaceArr =  array("“", "”", "\"");
    $replaced = str_replace($replaceArr,"",$str);
    echo $replaced;
?>

我尝试的时候看起来很干净。

于 2011-12-08T20:05:53.690 回答