Как решить проблему с выводом json_encode?

Здравствуйте.
Вывожу JSON в PHP таким образом:
echo json_encode($data, JSON_UNESCAPED_UNICODE);

Ничего лишнего до и после json_encode не выводится, без этой строчки ответ сервера пустой.
На домашнем сервере все работает как надо, на хостинге к ответу добавляется какой-то мусор, выглядит примерно так:
1221d
{"user":{ ... // тут собственно строка с JSON
0

//конец ответа

При этом если вывести результат json_encode в файл, то в файле чистый JSON без мусора:
file_put_contents(Yii::app()->basePath.'/logs/test.json', json_encode($data, JSON_UNESCAPED_UNICODE));

В чем может быть проблема?
  • Вопрос задан
  • 3374 просмотра
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
BOM заголовок? Закрываете тег <?php?
Ответ написан
@frees2
$json = preg_replace("#(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|([\s\t]//.*)|(^//.*)#", '', $json);
Ответ написан
7workers
@7workers
Я встречал в некоторых "фреймворках" самописаный json_encode, типа так:

if( !function_exists("json_encode") ) {
function json_encode() .....
}

возможно на хостинге не установлен модуль и используется "самопиленая" функция.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы