ScotlandPHP

Çalışma Anı Yapılandırması

Bu işlevlerin davranışı php.ini içindeki ayarlardan etkilenir.

Zlib eklentisi, istek yapan tarayıcı desteklediği takdirde, sayfaların şeffaf olarak sıkıştırılmasını sağlar. Eklentinin php.ini yapılandırma dosyasında üç yönergesi vardır.

Zlib Yapılandırma Yönergeleri
İsim Öntanımlı Değişlik Yeri Sürüm Bilgisi
zlib.output_compression "0" PHP_INI_ALL PHP 4.0.5'dan beri kullanılabilmektedir.
zlib.output_compression_level "-1" PHP_INI_ALL PHP 4.3.0'dan beri kullanılabilmektedir.
zlib.output_handler "" PHP_INI_ALL PHP 4.3.0'dan beri kullanılabilmektedir.
PHP_INI_* kiplerinin tanımları ve ayrıntılı açıklamaları için Yapılandırma ayarlarının yeri bölümüne bakınız.

Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

zlib.output_compression boolean/integer

Sayfanın şeffaf olarak sıkıştırılıp sıkıştırılmayacağı. Bu yönergeye php.ini içinde veya Apache yapılandırmasında "On" değerini belirtirseniz ve tarayıcı istek yaparken bir "Accept-Encoding: gzip" veya "deflate" başlığı gönderirse sayfalar sıkıştırılır ve çıktıya istek yapılan başlığa göre (sırasıyla) "Content-Encoding: gzip" veya "Vary: Accept-Encoding" başlığı eklenir. Çalışma anında herhangi bir çıktı göndermeden önce de bu yönergeye "On" atanabilir.

Bu seçenek "On"/"Off" değerlerinden başka tamsayı değerler de kabul eder. Tamsayı değerle çıktı tamponunun boyutunu belirleyebilirsiniz (öntanımlı olarak 4 kB'tır).

Bilginize:

Bu yönergeye "On" atandığı takdirde output_handler boş olmalıdır! Yerine zlib.output_handler kullanılmalıdır.

zlib.output_compression_level integer

Çıktının şeffaf olarak sıkıştırılması için kullanılacak sıkıştırma seviyesi. 0 (sıkıştırma yok) ile 9 (en fazla sıkıştırma) arasında bir değer olarak belirtilir. Öntanımlı değer -1 olup, kullanılacak sıkıştırma seviyesine sunucu karar verir.

zlib.output_handler string

php.ini dosyanızda zlib.output_compression yönergesini etkin kılmışsanız ek çıktı eylemcileri belirtemezsiniz. Bu ayar output_handler gibi yapılır fakat birlikle kullanılamazlar.

add a note add a note

User Contributed Notes 5 notes

up
0
pacerier+php dot net at gmail dot com
20 days ago
@finlanderid, Exactly. As output_handler and zlib.output_handler cant be both set (as per ""<output_handler must be empty if this is set 'On'>""), "different order" refers to?
up
-1
finlanderid at gmail dot com
2 years ago
Does anyone find these two statements contradictory? Am I not understanding something, or are these statements actually contradicting each other?

Statement ONE from output_handler:
"output_handler must be empty if this [zlib.output_compression] is set 'On' ! Instead you must use zlib.output_handler."

Statement TWO from zlib.output_handler:
"You cannot specify additional output handlers if zlib.output_compression is activated ..."

Statement ONE says you have to use zlib.output_handler, if zlib.output_compression is turned ON. Statement TWO says that, if zlib.output_compression is turned ON, you cannot use zlib.output_handler.

what the heck?
up
-2
galaxy
2 years ago
finlanderid at gmail dot com,

you are mixing two separate things and consider them to be the same thing, hence the confusion.

There are two output_handlers:

1. http://php.net/manual/en/outcontrol.configuration.php#ini.output-handler

2. http://php.net/manual/en/zlib.configuration.php#ini.zlib.output-handler

Now, if you re-read your quotes again with this information it won't be confusing anymore :)
up
-6
scott at pawprint dot net
5 years ago
In the hopes this will help others - a hard to spot gotcha when implementing zlib.output_compression. if you use flush() anywhere in your script (even right at the end) the compression won't work - you need to let that happen automatically or it ends up being sent uncompressed.
up
-12
Nathan
5 years ago
Apparently, there is a bug in certain versions of PHP with setting zlib.output_compression to "On" via ini_set:

<?php
ini_set
("zlib.output_compression", "On");
?>

In some cases, it does not send the Content-type header and browsers won't know to decompress the contents before displaying. Instead, you can set it to the buffer size, which sends the correct header:

<?php
ini_set
("zlib.output_compression", 4096);
?>
To Top