(PHP 4 >= 4.3.0, PHP 5, PHP 7)
stream_filter_append — Süzgeç zincirinin sonuna bir süzgeç ekler
$akım
, string $süzgeç
[, int $oku_yaz
[, mixed $değiştirgeler
]] )
akım
akımına ekli süzgeç zincirinin sonuna
süzgeç
isimli süzgeci ekler.
akım
Hedef akım.
süzgeç
Süzgeç ismi.
read_write
stream_filter_append() işlevi öntanımlı olarak,
dosya okumak için (r veya r+
kipi) açılmışsa süzgeci okuma süzgeci zincirine
ekler. Eğer dosya yazmak için (w,
a veya w+, a+
kipi) açılmışsa, süzgeç yazma süzgeci zincirine de
eklenir. Bu davranışı geçersiz kılmak için değiştirgeye
STREAM_FILTER_READ
,
STREAM_FILTER_WRITE
ve/veya
STREAM_FILTER_ALL
sabitleri de aktarılabilir.
değiştirgeler
Süzgeç, belirtilen değiştirgeler
ile listenin
sonuna eklenir ve akım işlemlerinde son
çağrılan süzgeç olur. Süzgeci listenin başına eklemek için
stream_filter_prepend() işlevini kullanın.
stream_filter_remove() çağrısına aktarılmak üzere bir özkaynak döndürür.
Sürüm: | Açıklama |
---|---|
5.1.0 |
PHP 5.1.0 öncesinde, bu işlev başarı durumunda TRUE yoksa FALSE
döndürürdü.
|
Örnek 1 - Süzgeçlerin uygulanacağı yerin belirlenmesi
<?php
/* Okumak ve yazmak için bir dosya açalım */
$fp = fopen('test.txt', 'w+');
/* ROT13 süzgecini yazma zincirine ekleyelim
fakat okuma zincirine eklemeyelim */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
/* ROT13 ile dönüştürülmek üzere dosyaya bir şeyler yazalım */
fwrite($fp, "This is a test\n");
/* Dosyanın başına dönelim */
rewind($fp);
/* Dosya içeriğini okuyalım.
* Süzgeç okuma zincirine de uygulanmış
* olsaydı metni eski durumuna dönüştürülmüş
* olarak görecektik. */
fpassthru($fp);
fclose($fp);
/* Beklenen çıktı
---------------
Guvf vf n grfg
*/
?>
Bilginize: Özel (kullanıcı) süzgeçlerini kullanırken
İstenen kullanıcı süzgecinisüzgeç
olarak tanıtmak için ilk olarak stream_filter_register() çağrılmalıdır.
Bilginize: Henüz okunmamış veri dahili tamponlarda tutulurken akım verisi özkaynaklardan (hem yerel hem de uzak) büyük kümeler halinde okunur. Süzgeç zincirinin sonuna yeni bir süzgeç eklendiğinde, dahili tamponlardaki işlenmiş veriler yeni süzgeçten de geçirilir. Bu davranış, yeni süzgeci zincirin başına ekleyen stream_filter_prepend() işlevinden bu yönüyle farklıdır.
Bilginize: Bir süzgeç hem okuma hem de yazma amacıyla eklendiğinde iki örneği oluşturulur. Her iki süzgeç özkaynağını ayırmak için stream_filter_append() işlevi
STREAM_FILTER_READ
veSTREAM_FILTER_WRITE
ile ayrı ayrı çağrılmalıdır.