Table of Contents
Code:
        strstr($_SERVER["HTTP_ACCEPT_ENCODING"], "gzip")) // And the browser says it can accept GZIP pages
header("Content-Length: ".strlen($content));
Home Backend Development PHP Tutorial PHP compression technology_PHP tutorial

PHP compression technology_PHP tutorial

Jul 20, 2016 am 11:05 AM
gzip php compression become Can back size technology yes of page

GZIP (GNU-ZIP) is a compression technology. After GZIP compression, the page size can be reduced to 30% or even smaller than the original size. In this way, users will feel refreshed and happy when browsing!
To implement GZIP compressed pages, the browser and the server need to support it. In fact, it is server compression. After it is transmitted to the browser, the browser decompresses and parses it. We don’t need to worry about the browser, because most browsers now support parsing GZIP pages. We just need to compress the page on the server side and then output it to the browser.

It’s a bit wordy, let’s get down to business:
Just like to make compressed biscuits, you must first get the raw materials, and to compress a page, you must first obtain the content to be output. The ob_start() (ob => output buffer) function in PHP can achieve this function. It can first put the content to be output in the program into a place called "buffer". Of course, you can understand it as making compressed cookies. A workbench for temporarily placing raw materials.
This function must be used before the page is output, so it is generally placed at the top of the code. Because it is like a workbench, you have to prepare it before the raw materials arrive, otherwise there will be no place to put the raw materials when they arrive, and problems will occur. After using ob_start() to get the page to be compressed, we can make compressed cookies. No, the page should be compressed! But it seems that there is still a lack of a compressor, EZ. We use the zlib extension of PHP to make one:

Code:
<font face="Youyuan"> Function OB_GZIP ($ Content) // $ Content is the page content to be compressed, or biscuit raw materials <code id="code0"><font face="幼圆">function ob_gzip($content) // $content 就是要压缩的页面内容,或者说饼干原料<br>{    <br>    if(    !headers_sent() && // 如果页面头部信息还没有输出<br>        extension_loaded("zlib") && // 而且zlib扩展已经加载到PHP中<br>        strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")) //而且浏览器说它可以接受GZIP的页面 <br>    {<br>        $content = gzencode($content." n//此页已压缩",9); 为准备压缩的内容贴上“//此页已压缩”的注释标签,然后用zlib提供的gzencode()函数执行级别为9的压缩,这个参数值范围是0-9,0表示无压缩,9表示最大压缩,当然压缩程度越高越费CPU。<br>        <br>        //然后用header()函数给浏览器发送一些头部信息,告诉浏览器这个页面已经用GZIP压缩过了!<br>        header("Content-Encoding: gzip"); <br>        header("Vary: Accept-Encoding");<br>        header("Content-Length: ".strlen($content));<br>    }<br>    return $content; //返回压缩的内容,或者说把压缩好的饼干送回工作台。<br>}</font> {

if (! Headers_sent () && // If the head information on the page has not output

Extension_Loaded "zlib") && // And the zlib extension has been loaded into PHP
        strstr($_SERVER["HTTP_ACCEPT_ENCODING"], "gzip")) // And the browser says it can accept GZIP pages
                  🎜>        $content = gzencode($content." n//This page has been compressed",9); Attach the comment label "//This page has been compressed" to the content to be compressed, and then use gzencode() provided by zlib The function performs compression with level 9. The value range of this parameter is 0-9, 0 means no compression, and 9 means maximum compression. Of course, the higher the degree of compression, the more CPU is consumed. <font face="幼圆">ob_start('ob_gzip'); //没错,就是给ob_start()加一个参数,参数名就是我们刚才做的“压缩机”的函数名。这样当内容进入缓冲区后PHP就会调用ob_gzip函数把它压缩了。</font>                                                                                                                                                                                                       // Then use the header() function to send some header information to the browser, telling the browser that this page has been compressed with GZIP!

header("Content-Encoding: gzip");

header("Vary: Accept-Encoding");
header("Content-Length: ".strlen($content));
}<font face="幼圆">ob_end_flush(); //结束缓冲区,输出内容。当然,不用这个函数也行,因为程序执行到最后会自动将缓冲区内容输出。</font> Return $content; //Return the compressed content, or send the compressed cookies back to the workbench.

}

After the compressor is ready, we put the compressor on the workbench, so the original ob_start() becomes Code:Okay, all the work is done, final delivery: Code: The complete example is as follows:
Code:
<font face="幼圆"><?php<br />//启用一个带有ob_gzip压缩机的工作台<br />ob_start('ob_gzip');<br />//准备一些待压缩的内容<br />for($i=0; $i<100; $i++)<br />{<br /> echo('这里是压缩饼干的原料,这里是压缩饼干的原料,原料');<br />}<br />//输出压缩成果<br />ob_end_flush();<br />//这是ob_gzip压缩机<br />function ob_gzip($content) <br />{ <br /> if( !headers_sent() && <br /> extension_loaded("zlib") && <br /> strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")) <br /> {<br /> $content = gzencode($content." n//此页已压缩",9); <br /> <br /> header("Content-Encoding: gzip"); <br /> header("Vary: Accept-Encoding");<br /> header("Content-Length: ".strlen($content));<br /> }<br /> return $content; <br />}<br />?></font>

After actual testing, if GZIP is not used in the above code, it is 4.69KB=4802.56B. After enabling GZIP, it is reduced to 104B , uh... I may not be good at math , calculate for yourself how many percent it has been compressed to its original size. .


www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/445080.htmlTechArticleGZIP (GNU-ZIP) is a compression technology. After GZIP compression, the page size can be reduced to 30% or even smaller than the original size. In this way, users will feel refreshed and happy when browsing! To achieve GZ...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles