<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/filters.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'filters.compression.php',
    1 => 'Sıkıştırma S&uuml;zge&ccedil;leri',
    2 => 'Sıkıştırma S&uuml;zge&ccedil;leri',
  ),
  'up' => 
  array (
    0 => 'filters.php',
    1 => 'Kullanılabilir S&uuml;zge&ccedil;lerin Listesi',
  ),
  'prev' => 
  array (
    0 => 'filters.convert.php',
    1 => 'D&ouml;n&uuml;ş&uuml;m S&uuml;zge&ccedil;leri',
  ),
  'next' => 
  array (
    0 => 'filters.encryption.php',
    1 => 'Şifreleme S&uuml;zge&ccedil;leri',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'appendices/filters.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="filters.compression" class="section">
  <h2 class="title">Sıkıştırma Süzgeçleri</h2>

  <p class="simpara">
    <a href="wrappers.compression.php" class="link">Sıkıştırma Sarmalayıcıları</a>
    yerel dosya sisteminde <code class="literal">gzip</code> ve <code class="literal">bz2</code>
    uyumlu dosyalar oluşturabilmelerine rağmen ne ağ akımlarına sıkıştırma
    uygulayabilir ne de sıkıştırılmış ağ akımlarının sıkıştırmasını
    açabilirler. Bunu sağlamak için, akım kaynaklarına herhangi bir anda bir
    sıkıştırma süzgeci uygulanabilir.
  </p>

  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <span class="simpara">
    Sıkıştırma süzgeçleri <code class="code">gzip</code> gibi komut satırı uygulamaları
    tarafından kullanılan dosya baş uç ve ayak uçlarını
    <em>üretmezler</em>. Sadece
    sıkıştırılmış veri akımlarının yararlı yükünü sıkıştırıp açarlar.
   </span>
  </p></blockquote>

  <div class="section" id="filters.compression.zlib">
   <h2 class="title">zlib.deflate and zlib.inflate</h2>
   <p class="simpara">
    <a href="https://datatracker.ietf.org/doc/html/rfc1951" class="link external">&raquo;&nbsp;RFC 1951</a>&#039;de tanımlanan sıkıştırma
    yöntemlerini gerçekler. <code class="literal">deflate</code> (sıkıştırma) süzgeci,
    aktarılan üç bağımsız değişkeni bir ilişkisel dizi olarak kabul eder.

    <code class="parameter">level</code> bağımsız değişkeni sıkıştırmanın derecesini (1-9)
    belirler. Büyük numaralar, küçüklerine göre genelde daha küçük yararlı yük
    oluşturmasına rağmen daha uzun işlem zamanına gerektirirler. Ayrıca iki
    özel sıkıştırma seviyesi daha mevcuttur: 0 (hiç sıkıştırma yapılmaz) ve -1
    (zlib yerleşik öntanımlısı; şimdilik 6).

    <code class="parameter">window</code> bağımsız değişkeninin değeri, sıkıştırma döngüsü
    pencere genişliğinin 2 tabanına göre logaritmasıdır. Yüksek değerler
    (yukarda 15&#039;e -- 32768 bayta kadar) daha büyük bellek tüketimi
    karşılığında daha çok sıkıştırma sağlarken, düşük değerler (aşağıda 9&#039;a --
    512 bayta kadar) daha az bellek tüketimi karşılığında daha az sıkıştırma
    sağlar. Öntanımlı  <code class="parameter">window</code> genişliği şimdilik
    <code class="literal">15</code>&#039;tir.

    <code class="parameter">memory</code> bağımsız değişkeninin değeri ne kadar bellek
    ayrılacağını belirleyen bir katsayıdır. Geçerli değerler 1&#039;den (en az
    bellek ayırma) 9&#039;a (en çok bellek ayırma) kadardır. Bu bellek ayırma
    işlemi sadece hızı etkiler, üretilen yararlı yükün boyutuna etkisi yoktur.
   </p>

   <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
    <span class="simpara">
     Sıkıştırma seviyesi en çok kullanılan bağımsız değişken olduğundan bir dizi
     elemanı olarak belirtilebildiği gibi tek başına basit bir bağımsız değişken
     olarak da  belirtilebilmektedir.
    </span>
   </p></blockquote>

   <p class="simpara">
    <code class="literal">zlib.*</code> sıkıştırma süzgeçleri,  <a href="ref.zlib.php" class="link">zlib</a> desteği etkin olduğu takdirde
    kullanılabilmektedir.
   </p>

   <div class="example" id="example-1">
    <p><strong>Örnek 1 - <code class="code">zlib.deflate</code> ve <code class="code">zlib.inflate</code> örneği
    </strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$params </span><span style="color: #007700">= array(</span><span style="color: #DD0000">'level' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">6</span><span style="color: #007700">, </span><span style="color: #DD0000">'window' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">15</span><span style="color: #007700">, </span><span style="color: #DD0000">'memory' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">9</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$özgün_metin </span><span style="color: #007700">= </span><span style="color: #DD0000">"Bu bir denemedir.\nBu sadece bir denemedir.\nBu önemli bir dizge değildir.\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"Özgün metin " </span><span style="color: #007700">. </span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$özgün_metin</span><span style="color: #007700">) . </span><span style="color: #DD0000">" karakter uzunluktadır.\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$fp </span><span style="color: #007700">= </span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #DD0000">'test.deflated'</span><span style="color: #007700">, </span><span style="color: #DD0000">'w'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">stream_filter_append</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">, </span><span style="color: #DD0000">'zlib.deflate'</span><span style="color: #007700">, </span><span style="color: #0000BB">STREAM_FILTER_WRITE</span><span style="color: #007700">, </span><span style="color: #0000BB">$params</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">, </span><span style="color: #0000BB">$özgün_metin</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fclose</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #DD0000">"Sıkıştırılmış dosya "</span><span style="color: #007700">.</span><span style="color: #0000BB">filesize</span><span style="color: #007700">(</span><span style="color: #DD0000">'test.deflated'</span><span style="color: #007700">).</span><span style="color: #DD0000">" bayt uzunluktadır.\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"Özgün metin:\n"</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">/* veriyi bir yere aktarmadan sıkıştırmayı açmak için<br />   readfile ve zlib.inflate kullanalım  */<br /></span><span style="color: #0000BB">readfile</span><span style="color: #007700">(</span><span style="color: #DD0000">'php://filter/zlib.inflate/resource=test.deflated'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Üretilen çıktı:<br /><br />Özgün metin 75 karakter uzunluktadır.<br />Sıkıştırılmış dosya 57 bayt uzunluktadır.<br />Özgün metin:<br />Bu bir denemedir.<br />Bu sadece bir denemedir.<br />Bu önemli bir dizge değildir.<br /> */<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>

   <div class="example" id="example-2">
    <p><strong>Örnek 2 - Basit bir <code class="code">zlib.deflate</code> örneği</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$özgün_metin </span><span style="color: #007700">= </span><span style="color: #DD0000">"Bu bir denemedir.\nBu sadece bir denemedir.\nBu önemsiz bir dizgedir.\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"Özgün metin "</span><span style="color: #007700">.</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$özgün_metin</span><span style="color: #007700">).</span><span style="color: #DD0000">" karakter uzunluktadır.\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$fp </span><span style="color: #007700">= </span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #DD0000">'test.deflated'</span><span style="color: #007700">, </span><span style="color: #DD0000">'w'</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">/* Buradaki "6" sıkıştırma seviyesinin 6 olduğunu göstermektedir */<br /></span><span style="color: #0000BB">stream_filter_append</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">, </span><span style="color: #DD0000">'zlib.deflate'</span><span style="color: #007700">, </span><span style="color: #0000BB">STREAM_FILTER_WRITE</span><span style="color: #007700">, </span><span style="color: #0000BB">6</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">, </span><span style="color: #0000BB">$özgün_metin</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fclose</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #DD0000">"Sıkıştırılmış dosya "</span><span style="color: #007700">.</span><span style="color: #0000BB">filesize</span><span style="color: #007700">(</span><span style="color: #DD0000">'test.deflated'</span><span style="color: #007700">).</span><span style="color: #DD0000">" bayt uzunluktadır.\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/* Üretilen çıktı:<br /><br />Özgün metin 69 karakter uzunluktadır.<br />Sıkıştırılmış dosya 45 bayt uzunluktadır.<br /><br /> */<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </div>

  <div class="section" id="filters.compression.bzip2">
   <h2 class="title">bzip2.compress and bzip2.decompress</h2>
   <p class="simpara">
    <code class="literal">bzip2.compress</code> ve <code class="literal">bzip2.decompress</code>
    süzgeçleri yukarıda açıklanan <code class="literal">zlib</code> süzgeçleriyle aynı
    anlamda çalışırlar.

    <code class="literal">bzip2.compress</code> süzgeci bir ilişkisel dizinin elemanları
    olarak iki bağımsız değişken kabul eder:

    <code class="parameter">blocks</code> bağımsız değişkeni, çalışma alanı için ayrılacak
    belleğin 100 kbaytlık katları olarak 1&#039;den 9&#039;a kadar bir tamsayıdır.

    <code class="parameter">work</code> bağımsız değişkeni de bir tamsayı olup, son çare
    olarak daha yavaş fakat daha güvenilir bir yönteme başvurmadan önce normal
    bir sıkıştırma yöntemine ne kadar çaba harcanacağını belirten 0&#039;dan 250&#039;ye
    kadar bir değerdir. Bu bağımsız değişken sadece hız üzerinde etkilidir. Bu
    ayardan ne sıkıştırılmış çıktının boyu ne de bellek kullanımı etkilenir. 0
    değeri bzip kütüphanesinin yerleşik öntanımlısının kullanılacağı anlamına
    gelir.

    <code class="literal">bzip2.decompress</code> süzgeci tek bir bağımsız değişken kabul eder.
    Ya sıradan bir mantıksal değer ya da <code class="parameter">small</code>
    anahtarlı tek elemanı olan bir ilişkisel dizidir.

    <code class="parameter">small</code> bağımsız değişkenine <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> değerinin atanması,
    bzip2 kütüphanesinin sıkıştırmayı açmak için hız pahasına en az belleği
    ayıracağı anlamına gelir.
   </p>

   <p class="simpara">
    <code class="literal">bzip2.*</code> sıkıştırma süzgeçleri, <a href="ref.bzip2.php" class="link">bz2</a> desteği etkin olduğu takdirde
    kullanılabilmektedir.
   </p>

   <div class="example" id="example-3">
    <p><strong>Örnek 3 - <code class="code">bzip2.compress</code> ve <code class="code">bzip2.decompress</code>
    örneği</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$param </span><span style="color: #007700">= array(</span><span style="color: #DD0000">'blocks' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">9</span><span style="color: #007700">, </span><span style="color: #DD0000">'work' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #DD0000">"Özgün dosya " </span><span style="color: #007700">. </span><span style="color: #0000BB">filesize</span><span style="color: #007700">(</span><span style="color: #DD0000">'LICENSE'</span><span style="color: #007700">) . </span><span style="color: #DD0000">" bayt uzunluktadır.\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$fp </span><span style="color: #007700">= </span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #DD0000">'LICENSE.compressed'</span><span style="color: #007700">, </span><span style="color: #DD0000">'w'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">stream_filter_append</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">, </span><span style="color: #DD0000">'bzip2.compress'</span><span style="color: #007700">, </span><span style="color: #0000BB">STREAM_FILTER_WRITE</span><span style="color: #007700">, </span><span style="color: #0000BB">$param</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">, </span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #DD0000">'LICENSE'</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">fclose</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #DD0000">"Sıkıştırılmış dosya " </span><span style="color: #007700">. </span><span style="color: #0000BB">filesize</span><span style="color: #007700">(</span><span style="color: #DD0000">'LICENSE.compressed'</span><span style="color: #007700">) . </span><span style="color: #DD0000">" bayt uzunluktadır.\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/* Üretilen çıktı:<br /><br />Özgün dosya 3288 bayt uzunluktadır.<br />Sıkıştırılmış dosya 1488 bayt uzunluktadır.<br /><br /> */<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </div>
 </div><?php manual_footer($setup); ?>