Intereting Posts

Как сжать JSON с PHP?

Я пишу небольшую страницу анализа, которая поможет мне выслеживать ошибки в приложении. По сути, это позволяет визуально сравнивать фактические данные и записи в журнале, а также выполнять анализ данных.

Поскольку это только для отладки, и поскольку я буду развертывать это на реальном сайте, я хочу, чтобы он имел как можно меньше нагрузки на сервер. Некоторые параметры анализа будут включать довольно тяжелый поиск подстроки или n 2 операции, поэтому я собираюсь разгрузить это для клиента.

Это означает, что страница PHP будет просто извлекать данные из таблиц и журналов, некоторые из них JSON и записывать их. Клиент Javascript затем выполнит весь анализ и т. Д.

Проблема в том, что данные JSON будут иметь несколько мегабайт, а мое соединение с сервером – медленное. Было бы неплохо сжать данные. У кого-нибудь есть идеи?

Среда – это PHP + Apache; Я не знаю, будет ли установлен mod_gzip; и я не контролирую его.

Solutions Collecting From Web of "Как сжать JSON с PHP?"

Вы можете сжать данные с помощью выходного контроля PHP . Просто поставьте этот вызов в начале вашего скрипта перед любым выходом:

ob_start('ob_gzhandler'); 

Теперь любой выход будет сжиматься с помощью gzip или deflate, если он будет принят клиентом.

В PHP 5.4 теперь JSON_UNESCAPED_UNICODE, поэтому вы можете заменить char:

\ u00f3 -> Ĺ> = Ś

э:

  json_encode($data,JSON_UNESCAPED_UNICODE); 

Если apache – ваш выбор (и это, как указано в оригинальном вопросе), вы можете добавить некоторые правила в .htaccess:

 <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html # Add any mime-type you think is appropriate here AddOutputFilterByType DEFLATE application/json </IfModule>