>백엔드 개발 >PHP 튜토리얼 >PHP가 반환된 JSON 데이터를 압축하고 gzip으로 출력하는 방법에 대한 자세한 설명

PHP가 반환된 JSON 데이터를 압축하고 gzip으로 출력하는 방법에 대한 자세한 설명

*文
*文원래의
2018-01-05 17:56:063374검색

PHP는 gzip을 사용하여 반환된 JSON 데이터를 어떻게 압축하고 출력합니까? 이 글에서는 주로 gzip 압축을 사용하여 PHP에서 반환되는 JSON 형식의 데이터를 출력하는 방법을 소개합니다. 글의 예제 환경은 Linux 시스템이며 필요한 친구는 이를 참조할 수 있습니다. 그것이 모두에게 도움이 되기를 바랍니다.

1. 압축 유무에 따른 HTTP 출력 비교

201633154618959.jpg (447×226)

2. gzip을 켜세요

apache mod_deflate 모듈을 사용하여 gzip을 켜세요.
켜는 방법:

sudo a2enmod deflate
sudo /etc/init.d/apache2 restart

끄는 방법 :

sudo a2dismod deflate
sudo /etc/init.d/apache2 restart

3. gzip 압축이 필요한 출력 유형을 설정합니다. json의 출력 유형은 application/json이므로, httpd.conf의 7b799fe73e35dcfdc019b13f54de80e5

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/json
</IfModule>
<?php
$data = array(
  array(&#39;name&#39;=>&#39;one&#39;,&#39;value&#39;=>1),
  array(&#39;name&#39;=>&#39;two&#39;,&#39;value&#39;=>2),
  array(&#39;name&#39;=>&#39;three&#39;,&#39;value&#39;=>3),
  array(&#39;name&#39;=>&#39;four&#39;,&#39;value&#39;=>4),
  array(&#39;name&#39;=>&#39;five&#39;,&#39;value&#39;=>5),
  array(&#39;name&#39;=>&#39;six&#39;,&#39;value&#39;=>6),
  array(&#39;name&#39;=>&#39;seven&#39;,&#39;value&#39;=>7),
  array(&#39;name&#39;=>&#39;eight&#39;,&#39;value&#39;=>8),
  array(&#39;name&#39;=>&#39;nine&#39;,&#39;value&#39;=>9),
  array(&#39;name&#39;=>&#39;ten&#39;,&#39;value&#39;=>10),
);

header(&#39;content-type:application/json&#39;);
echo json_encode($data);
?>
를 추가하면 됩니다. ; gzip 이전에 출력을 설정하려면:



gzip 설정 후 출력:

201633154714151.jpg (346×83)


4 gzip 압축을 사용하여 단일 json이 출력됩니다.

201633154732511.jpg (334×99)

AddOutputFilterByType DEFLATE 애플리케이션/json을 설정한 후 모든 데이터 출력 json 형식의 경우 gzip 압축을 사용하여 출력됩니다.

특정 json을 출력하기 위해 gzip 압축만 사용하고 다른 JSON은 출력하지 않으려면 ob_start() 메서드를 사용하면 됩니다. 먼저 AddOutputFilterByType을 설정할 필요가 없습니다. 그런 다음 ob_start('ob_gzhandler');

<?php
ob_start(&#39;ob_gzhandler&#39;);

$data = array(
  array(&#39;name&#39;=>&#39;one&#39;,&#39;value&#39;=>1),
  array(&#39;name&#39;=>&#39;two&#39;,&#39;value&#39;=>2),
  array(&#39;name&#39;=>&#39;three&#39;,&#39;value&#39;=>3),
  array(&#39;name&#39;=>&#39;four&#39;,&#39;value&#39;=>4),
  array(&#39;name&#39;=>&#39;five&#39;,&#39;value&#39;=>5),
  array(&#39;name&#39;=>&#39;six&#39;,&#39;value&#39;=>6),
  array(&#39;name&#39;=>&#39;seven&#39;,&#39;value&#39;=>7),
  array(&#39;name&#39;=>&#39;eight&#39;,&#39;value&#39;=>8),
  array(&#39;name&#39;=>&#39;nine&#39;,&#39;value&#39;=>9),
  array(&#39;name&#39;=>&#39;ten&#39;,&#39;value&#39;=>10),
);

header(&#39;content-type:application/json&#39;);
echo json_encode($data);
?>


관련 권장 사항:

PHP 배열 탐색 foreach 구문 구조 및 예제

PHP 배열 요약 정렬 방법

PHP와 js의 json 전송에 대한 간략한 분석

위 내용은 PHP가 반환된 JSON 데이터를 압축하고 gzip으로 출력하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.