PHP 8.3.4 Released!

Ç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" INI_ALL  
zlib.output_compression_level "-1" INI_ALL  
zlib.output_handler "" INI_ALL  
INI_* kiplerinin tanımları ve ayrıntılı açıklamaları Yapılandırma ayarlarının yeri bölümünde bulunabilir.

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

zlib.output_compression bool/int

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 int

Çı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

User Contributed Notes 5 notes

up
-3
finlanderid at gmail dot com
8 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
-5
Anon
4 years ago
Because of possible BREACH attacks when using output compression cross-site scripting should be disallowed. This can be achieved with the same-site cookie attribute:

https://www.sjoerdlangkemper.nl/2016/04/14/preventing-csrf-with-samesite-cookie-attribute/

https://caniuse.com/#feat=same-site-cookie-attribute
up
-7
scott at pawprint dot net
12 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
-7
pacerier+php dot net at gmail dot com
6 years 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
-17
galaxy
8 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 :)
To Top