str_replace двойная кавычка из слова - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть данные JSON в виде строки, которая передается в JavaScript.Прежде чем передать строку, я делаю поиск в php всех двойных кавычек и заменяю их.Это работает нормально, но некоторые строки json имеют (как выглядит) двойную кавычку в стиле MS Word, возможно, выделенную курсивом.Поэтому мой <?php $t = str_replace("”", "", $t); ?> вызов метода не экранирует специальные двойные кавычки.

Нужно ли найти код и убежать от него?Я попытался вставить цитату из строки, а затем вставить ее в метод php, но он все равно не распознает символ как другую двойную кавычку.

Дайте мне посмотреть, смогу ли я вставить цитату здесь -- < “ > и < ” >

спасибо.

Ответы [ 2 ]

4 голосов
/ 08 декабря 2011
<?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

1 голос
/ 09 декабря 2011

Я попробовал сам, так что единственное, что я мог придумать, - это использовать кодировку UTF-8.

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

Выглядит чистым, когда я попробую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...