<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.stream.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'function.stream-filter-register.php',
    1 => 'stream_filter_register',
    2 => 'Kullanıcı tanımlı bir akım s&uuml;zgecini etkin kılar',
  ),
  'up' => 
  array (
    0 => 'ref.stream.php',
    1 => 'Akım İşlevleri',
  ),
  'prev' => 
  array (
    0 => 'function.stream-filter-prepend.php',
    1 => 'stream_filter_prepend',
  ),
  'next' => 
  array (
    0 => 'function.stream-filter-remove.php',
    1 => 'stream_filter_remove',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'reference/stream/functions/stream-filter-register.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.stream-filter-register" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">stream_filter_register</h1>
  <p class="verinfo">(PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">stream_filter_register</span> &mdash; <span class="dc-title">Kullanıcı tanımlı bir akım süzgecini etkin kılar</span></p>

 </div>
 <div class="refsect1 description" id="refsect1-function.stream-filter-register-description">
  <h3 class="title">Açıklama</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>stream_filter_register</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$süzgeç</code></span>, <span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$sınıf</code></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>stream_filter_register()</strong></span> işlevi dosya sistemi
   işlevleriyle (<span class="function"><a href="function.fopen.php" class="function">fopen()</a></span>, <span class="function"><a href="function.fread.php" class="function">fread()</a></span> gibi)
   kullanılmak üzere kendi süzgecinizi tanımlamanıza izin verir.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.stream-filter-register-parameters">
  <h3 class="title">Bağımsız Değişkenler</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">süzgeç</code></dt>
     <dd>
      <p class="para">
       Süzgecin ismi.
      </p>
     </dd>
    
    
     <dt><code class="parameter">sınıf</code></dt>
     <dd>
      <p class="para">
       Bir süzgeci gerçeklemek için, <span class="classname"><a href="class.php-user-filter.php" class="classname">php_user_filter</a></span>&#039;a
       bir eklenti olarak, üye işlevlerle bir sınıf
       tanımlamanız gerekir. Süzgecinizin ekli olduğu akım üzerinde okuma ve
       yazma işlemleri yaparken, PHP tüm veriyi süzgecinizden (ve akıma ekli
       diğer süzgeçlerden) geçirerek verinin istendiği gibi değiştirilmesini
       sağlar. Yöntemleri tamamen <span class="classname"><a href="class.php-user-filter.php" class="classname">php_user_filter</a></span>
       sınıfında açıklandığı gibi gerçeklemeniz gerekir. -- Başka türlü
       yaparsanız süzgecin ne yapacağı belli olmaz.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.stream-filter-register-returnvalues">
  <h3 class="title">Dönen Değerler</h3>
  <p class="para">
   Başarı durumunda <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, başarısızlık durumunda <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> döner.
  </p>
  <p class="para">
   <code class="parameter">süzgeç</code> zaten tanımlı bir süzgeçse <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> döner.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.stream-filter-register-examples">
  <h3 class="title">Örnekler</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Örnek 1 - <var class="filename">foo-bar.txt</var> akımında büyük harfe dönüşüm
    süzgeci</strong></p>
    <div class="example-contents"><p>
     Aşağıdaki örnekte, <var class="filename">foo-bar.txt</var> akımında okunup
     yazılan tüm harfleri büyük harfe çeviren <code class="literal">strtoupper</code>
     isimli bir süzgeç gerçeklenmektedir.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">/* Kendi süzgecimizi tanımlayalım */<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">strtoupper_filter </span><span style="color: #007700">extends </span><span style="color: #0000BB">php_user_filter </span><span style="color: #007700">{<br />  function </span><span style="color: #0000BB">filter</span><span style="color: #007700">(</span><span style="color: #0000BB">$giriş</span><span style="color: #007700">, </span><span style="color: #0000BB">$çıkış</span><span style="color: #007700">, &amp;</span><span style="color: #0000BB">$tüketilen</span><span style="color: #007700">, </span><span style="color: #0000BB">$kapanış</span><span style="color: #007700">)<br />  {<br />    while (</span><span style="color: #0000BB">$bakla </span><span style="color: #007700">= </span><span style="color: #0000BB">stream_bucket_make_writeable</span><span style="color: #007700">(</span><span style="color: #0000BB">$giriş</span><span style="color: #007700">)) {<br />      </span><span style="color: #0000BB">$bakla</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">data </span><span style="color: #007700">= </span><span style="color: #0000BB">strtoupper</span><span style="color: #007700">(</span><span style="color: #0000BB">$bakla</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">data</span><span style="color: #007700">);<br />      </span><span style="color: #0000BB">$tüketilen </span><span style="color: #007700">+= </span><span style="color: #0000BB">$bakla</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">datalen</span><span style="color: #007700">;<br />      </span><span style="color: #0000BB">stream_bucket_append</span><span style="color: #007700">(</span><span style="color: #0000BB">$çıkış</span><span style="color: #007700">, </span><span style="color: #0000BB">$bakla</span><span style="color: #007700">);<br />    }<br />    return </span><span style="color: #0000BB">PSFS_PASS_ON</span><span style="color: #007700">;<br />  }<br />}<br /><br /></span><span style="color: #FF8000">/* Süzgecimizi PHP'ye tanıtalım */<br /></span><span style="color: #0000BB">stream_filter_register</span><span style="color: #007700">(</span><span style="color: #DD0000">"strtoupper"</span><span style="color: #007700">, </span><span style="color: #DD0000">"strtoupper_filter"</span><span style="color: #007700">)<br />    or die(</span><span style="color: #DD0000">"Süzgecin tanıtımı başarısız oldu"</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">"foo-bar.txt"</span><span style="color: #007700">, </span><span style="color: #DD0000">"w"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Süzgeci açık akıma ekleyelim  */<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">"strtoupper"</span><span style="color: #007700">);<br /><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: #DD0000">"Line1\n"</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: #DD0000">"Word - 2\n"</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: #DD0000">"Easy As 123\n"</span><span style="color: #007700">);<br /><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 /></span><span style="color: #FF8000">/* İçeriği tekrar okuyalım */<br /></span><span style="color: #0000BB">readfile</span><span style="color: #007700">(</span><span style="color: #DD0000">"foo-bar.txt"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>
Yukarıdaki örneğin çıktısı:</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">LINE1
WORD - 2
EASY AS 123</pre>
</div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Örnek 2 - Çok sayıda süzgeç ismiyle eşleşen soysal bir süzgeç sınıfının
    tanıtımı</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">/* Kendi süzgeç sınıfımızı tanımlayalım */<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">string_filter </span><span style="color: #007700">extends </span><span style="color: #0000BB">php_user_filter </span><span style="color: #007700">{<br />  var </span><span style="color: #0000BB">$mode</span><span style="color: #007700">;<br /><br />  function </span><span style="color: #0000BB">filter</span><span style="color: #007700">(</span><span style="color: #0000BB">$giriş</span><span style="color: #007700">, </span><span style="color: #0000BB">$çıkış</span><span style="color: #007700">, &amp;</span><span style="color: #0000BB">$tüketilen</span><span style="color: #007700">, </span><span style="color: #0000BB">$kapanış</span><span style="color: #007700">)<br />  {<br />    while (</span><span style="color: #0000BB">$bakla </span><span style="color: #007700">= </span><span style="color: #0000BB">stream_bucket_make_writeable</span><span style="color: #007700">(</span><span style="color: #0000BB">$giriş</span><span style="color: #007700">)) {<br />      if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mode </span><span style="color: #007700">== </span><span style="color: #0000BB">1</span><span style="color: #007700">) {<br />        </span><span style="color: #0000BB">$bakla</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">data </span><span style="color: #007700">= </span><span style="color: #0000BB">strtoupper</span><span style="color: #007700">(</span><span style="color: #0000BB">$bakla</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">data</span><span style="color: #007700">);<br />      } elseif (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mode </span><span style="color: #007700">== </span><span style="color: #0000BB">0</span><span style="color: #007700">) {<br />        </span><span style="color: #0000BB">$bakla</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">data </span><span style="color: #007700">= </span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">$bakla</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">data</span><span style="color: #007700">);<br />      }<br /><br />      </span><span style="color: #0000BB">$tüketilen </span><span style="color: #007700">+= </span><span style="color: #0000BB">$bakla</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">datalen</span><span style="color: #007700">;<br />      </span><span style="color: #0000BB">stream_bucket_append</span><span style="color: #007700">(</span><span style="color: #0000BB">$çıkış</span><span style="color: #007700">, </span><span style="color: #0000BB">$bakla</span><span style="color: #007700">);<br />    }<br />    return </span><span style="color: #0000BB">PSFS_PASS_ON</span><span style="color: #007700">;<br />  }<br /><br />  function </span><span style="color: #0000BB">onCreate</span><span style="color: #007700">()<br />  {<br />    if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">filtername </span><span style="color: #007700">== </span><span style="color: #DD0000">'str.toupper'</span><span style="color: #007700">) {<br />      </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mode </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />    } elseif (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">filtername </span><span style="color: #007700">== </span><span style="color: #DD0000">'str.tolower'</span><span style="color: #007700">) {<br />      </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">mode </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />    } else {<br />      </span><span style="color: #FF8000">/* PHP'nin başka str.* süzgeçlerine bakması için<br />         başarısızlığı raporluyoruz */<br />      </span><span style="color: #007700">return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />    }<br /><br />    return </span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />  }<br />}<br /><br /></span><span style="color: #FF8000">/*Süzgecimizi PHP'ye tanıtalım */<br /></span><span style="color: #0000BB">stream_filter_register</span><span style="color: #007700">(</span><span style="color: #DD0000">"str.*"</span><span style="color: #007700">, </span><span style="color: #DD0000">"string_filter"</span><span style="color: #007700">)<br />    or die(</span><span style="color: #DD0000">"Süzgeç tanıtılamadı"</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">"foo-bar.txt"</span><span style="color: #007700">, </span><span style="color: #DD0000">"w"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Süzgeci açık akıma ekleyelim.<br />   Burada str.tolower süzgecini de ekleyebilirdik. */<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">"str.toupper"</span><span style="color: #007700">);<br /><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: #DD0000">"Line1\n"</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: #DD0000">"Word - 2\n"</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: #DD0000">"Easy As 123\n"</span><span style="color: #007700">);<br /><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 /></span><span style="color: #FF8000">/* İçeriği tekrar okuyalım */<br /></span><span style="color: #0000BB">readfile</span><span style="color: #007700">(</span><span style="color: #DD0000">"foo-bar.txt"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>
Yukarıdaki örneğin çıktısı:</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">LINE1
WORD - 2
EASY AS 123</pre>
</div>
    </div>
   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.stream-filter-register-seealso">
  <h3 class="title">Ayrıca Bakınız</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.stream-wrapper-register.php" class="function" rel="rdfs-seeAlso">stream_wrapper_register()</a> - Bir PHP sınıfı olarak ger&ccedil;eklenmiş bir URL sarmalayıcısını etkin kılar</span></li>
    <li><span class="function"><a href="function.stream-filter-append.php" class="function" rel="rdfs-seeAlso">stream_filter_append()</a> - S&uuml;zge&ccedil; zincirinin sonuna bir s&uuml;zge&ccedil; ekler</span></li>
    <li><span class="function"><a href="function.stream-filter-prepend.php" class="function" rel="rdfs-seeAlso">stream_filter_prepend()</a> - S&uuml;zge&ccedil; zincirinin başına bir s&uuml;zge&ccedil; ekler</span></li>
   </ul>
  </p>
 </div>

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