我将json数据作为传递给javascript的字符串。在字符串传递之前,我正在php中搜索所有双引号并替换它们。这工作正常,但一些json字符串(看起来像)MS Word样式双引号,可能斜体。所以我的<?php $t = str_replace("”", "", $t); ?>
方法调用没有转义特殊的双引号。
我是否需要找到charcode并逃脱?我尝试将引号拼接出字符串,然后将其粘贴到php方法中,但它仍然不会将字符识别为不同的双引号。
让我看看我是否可以在此处粘贴引文 - < “ >
和< ” >
答案 0 :(得分: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;
答案 1 :(得分:1)
我自己尝试过,所以我只能提出你必须使用UTF-8编码。
<?php
header('content-type: text/html; charset=utf-8');
$str = "“ > and < ”\"";
$replaceArr = array("“", "”", "\"");
$replaced = str_replace($replaceArr,"",$str);
echo $replaced;
?>
当我尝试时,看起来很干净。