массив специальных символов для замены в тексте, php, json - PullRequest
0 голосов
/ 29 октября 2010

У меня есть огромный текст, который я продолжаю получать в формате JSON. Когда я получаю их в json, для некоторых специальных символов, таких как '"& copy, я получаю их по-разному. Я использую php и json для преобразования json в html. Например, я получаю

'as \ c101d (одинарная кавычка) "as \ c201d (вступительная цитата) "as \ c202d (заключительная цитата)

Я планирую сохранить все ',' в массиве и использовать этот массив для замены значений \ c101d в тексте на 'или что-то подобное, чтобы было проще проверить весь текст в одной команде, заменить все специальные символы правильно и правильно отображать их на моей веб-странице.

Может быть, что-то вроде $ arr = array ("\ c101d" => "'", "\ c202d" => "" "), а затем вызвать этот массив в переменной $ text, чтобы проверить наличие символов, похожих на символы в массив и сделать строку заменить. У меня есть идея, но с точки зрения программирования, как мне этого добиться? Цени любую помощь.

Ответы [ 3 ]

1 голос
/ 29 октября 2010

решаемые

Ну, этот кусок кода решил все проблемы, включая ', "и все другие странные символы.

$newtext=mb_convert_encoding($text,  'HTML-ENTITIES','UTF-8');
1 голос
/ 29 октября 2010

¿Используете ли вы json_encode() с различными флагами параметров?

Для замены подстроки следует использовать strtr()

0 голосов
/ 29 октября 2010

str_replace должен делать то, что вы хотите.

Эта функция возвращает строку или массив со всеми вхождениями search в subject , замененными на данное replace значение.

Функция str_replace принимает массивы в качестве возможных параметров для поиска и замены, поэтому вы можете сделать что-то вроде:

$search = array( '\'' , '"', ...);
$replace = array( '\c101d', '\c201d', ...);
$text = str_replace($search, $replace, $text);
...