Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk melaksanakan pemampatan gzip dalam PHP

Bagaimana untuk melaksanakan pemampatan gzip dalam PHP

PHPz
Lepaskan: 2023-04-19 10:00:11
asal
1751 orang telah melayarinya

PHP ialah bahasa skrip yang digunakan secara meluas dalam pembangunan web Untuk tapak web yang besar, memampatkan data respons HTTP adalah langkah pengoptimuman yang diperlukan. Antaranya, Gzip ialah kaedah pemampatan yang biasa digunakan yang boleh mengurangkan jumlah penghantaran data sambil mengekalkan data yang utuh, sekali gus meningkatkan kelajuan pemuatan halaman dan kelajuan tindak balas.

Dalam sistem Linux, kami boleh memampatkan fail melalui arahan gzip. Tetapi bagaimana untuk melaksanakan pemampatan gzip dalam PHP? Artikel ini akan berkongsi dengan anda cara melaksanakan pemampatan gzip dalam PHP.

1. Dayakan sambungan zlib

Dalam PHP, kami perlu mendayakan sambungan zlib terlebih dahulu dan menggunakan fungsi yang disediakan oleh sambungan untuk melaksanakan pemampatan gzip. Kita boleh menyemak sama ada sambungan zlib didayakan melalui fungsi phpinfo() atau fail php.ini. Jika ia tidak didayakan, kami perlu mengalih keluar ulasan di hadapan sambungan zlib dalam fail php.ini dan mulakan semula pelayan web agar ia berkuat kuasa.

2. Gunakan fungsi gzencode()

Selepas sambungan zlib dihidupkan, kita boleh menggunakan fungsi gzencode() untuk gzip data yang perlu dimampatkan. Fungsi ini mempunyai dua parameter: parameter pertama ialah data yang akan dimampatkan, yang boleh menjadi rentetan atau nama fail parameter kedua ialah tahap mampatan, yang berkisar antara 0 hingga 9. Semakin besar nilai, semakin tinggi pemampatan; nisbah, tetapi masa yang sepadan dan penggunaan CPU juga akan meningkat.

Berikut ialah contoh mudah:

$data = '需要压缩的数据';
$compressed_data = gzencode($data, 9);
Salin selepas log masuk

Dalam contoh di atas, $data ialah data yang perlu dimampatkan dan $compressed_data ialah data yang dimampatkan.

3. Tetapkan pengepala respons

Selepas pemampatan gzip selesai, kita perlu menetapkan pengepala respons untuk memberitahu penyemak imbas bahawa kandungan respons adalah dimampatkan gzip dan nyahmampatkannya dengan betul untuk paparan . Kami perlu menambah dua parameter, Pengekodan Kandungan dan Panjang Kandungan, pada pengepala respons, seperti yang ditunjukkan di bawah:

header('Content-Encoding: gzip');
header('Content-Length: '.strlen($compressed_data));
Salin selepas log masuk

Nota: Memandangkan pemampatan gzip akan mengubah panjang data, kami perlu menambahkannya pada pengepala respons.

4. Keluarkan data termampat

Akhir sekali, kita perlu mengeluarkan data termampat ke penyemak imbas. Ia boleh dikeluarkan melalui fungsi gema atau fwrite, seperti yang ditunjukkan di bawah:

echo $compressed_data;
Salin selepas log masuk

atau:

$fp = fopen('php://output', 'wb');
fwrite($fp, $compressed_data);
fclose($fp);
Salin selepas log masuk

Melalui langkah di atas, kita boleh mencapai pemampatan gzip. Kod akhir adalah seperti berikut:

$data = '需要压缩的数据';
$compressed_data = gzencode($data, 9);
header('Content-Encoding: gzip');
header('Content-Length: '.strlen($compressed_data));
echo $compressed_data;
Salin selepas log masuk

Ringkasan

Dalam pembangunan sebenar, kami perlu gzip memampatkan data respons untuk meningkatkan prestasi tapak web dan pengalaman pengguna. Artikel ini memperkenalkan kaedah melaksanakan pemampatan gzip dalam PHP, yang terutamanya merangkumi empat langkah: menghidupkan sambungan zlib, menggunakan fungsi gzencode(), menetapkan pengepala respons dan mengeluarkan data termampat. Saya harap artikel ini dapat memberikan sedikit bantuan kepada pembangun PHP dalam melaksanakan pemampatan gzip.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pemampatan gzip dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan