получение json_encode для исключения элементов html

Я отправляю json_encoded данные с моего PHP-сервера в приложение iPhone. Строки, содержащие html-объекты, такие как '&' , экранируются json_encode и отправляются как & ,

Я хочу сделать одно из двух:

  • make json_encode не json_encode html-объекты. Док говорит, что «нормальный» режим не должен убегать, но он не работает для меня. Есть идеи?

  • сделайте iPhone-приложение дешевым html-объектами. Единственный способ, с помощью которого я могу сейчас это сделать, – XML/HTML parser который очень дорог. Какие-нибудь более дешевые предложения?

Благодаря!

Ни PHP 5.3, ни PHP 5.2 не касаются объектов HTML.

Вы можете проверить это следующим кодом:

 <?php header("Content-type: text/plain"); //makes sure entities are not interpreted $s = 'A string with &amp; &#x6F8 entities'; echo json_encode($s); 

Вы увидите единственное, что делает PHP, – это добавить двойные кавычки вокруг строки.

json_encode этого не делает. У вас есть другой компонент, который выполняет кодировку HTML.

Если вы используете параметры JSON_HEX_ , вы можете избежать появления каких-либо символов < или & на выходе (они будут преобразованы в \u003C или аналогичные \u003C последовательности строк JS), что позволит избежать проблемы:

 json_encode($s, JSON_HEX_TAG|JSON_HEX_AMP|JSON_HEX_QUOT) 

хотя это будет зависеть от того, как точно знать, какие символы кодируются HTML дальше по течению. Может быть, и не-ASCII-символы?

Основываясь на руководстве, похоже, что json_encode не должен избегать ваших объектов, если вы не указали его явно в PHP 5.3. Возможно, вы используете старую версию PHP?

Отправляясь от ответа Artefacto, я бы рекомендовал использовать этот заголовок, он специально разработан для данных JSON, а не просто использует обычный текст.

 <?php header('Content-Type: application/json'); //Also makes sure entities are not interpreted $s = 'A string with &amp; &#x6F8 entities'; echo json_encode($s); 

Убедитесь, что вы проверяете это сообщение по более конкретным причинам, почему использовать этот тип контента. Каков правильный тип контента JSON?