Dönüşüm Süzgeçleri

string.* süzgeçleri gibi, the convert.* süzgeçleri de isimlerinde yazan eylemleri gerçekleştirirler. Belli bir süzgeçle ilgili ayrıntılı bilgi edinmek için ilgili işlevin kılavuz sayfasına bakınız.

convert.base64-encode ve convert.base64-decode

Bu süzgeçlerin kullanımı, tüm akım verisinin sırasıyla base64_encode() veya base64_decode() işlevi ile işlenmesine eşdeğerdir. convert.base64-encode süzgeci bağımsız değişkenlerin bir ilişkisel dizi olarak belirtilmesini destekler. Eğer line-length bağımsız değişkeni verilmişse base64 çıktı, her biri line-length baytlık parçalara bölünür. Eğer line-break-chars bağımsız değişkeni verilmişse çıktının her parçası belirtilen karakterle sınırlanır. Bu bağımsız değişkenler base64_encode() işlevinin chunk_split() ile birlikte kullanımına eşdeğer bir etkiye sebep olur.

Örnek 1 - convert.base64-encode ve convert.base64-decode örneği

<?php
$fp
= fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "Bu bir denemedir.\n");
echo
"\n";
fclose($fp);
/* Çıktısı: QnUgYmlyIGRlbmVtZWRpci4K */

$param = array('line-length' => 8, 'line-break-chars' => "\r\n");
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode', STREAM_FILTER_WRITE, $param);
fwrite($fp, "Bu bir denemedir.\n");
echo
"\n";
fclose($fp);
/* Çıktısı: QnUgYmly
: IGRlbmVt
: ZWRpci4K */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "QnUgYmlyIGRlbmVtZWRpci4K");
echo
"\n";
fclose($fp);
/* Çıktısı: Bu bir denemedir. */
?>

convert.quoted-printable-encode ve convert.quoted-printable-decode

Bu süzgeçlerden kod çözme (decode) ile ilgili olanın kullanımı, tüm akım verisinin quoted_printable_decode() işlevi ile işlenmesine eşdeğerdir. convert.quoted-printable-encode işlevine eşdeğer bir süzgeç yoktur. convert.quoted-printable-encode süzgeci bağımsız değişkenlerinin bir ilişkisel dizi olarak verilmesini destekler. convert.base64-encode süzgecinin bağımsız değişkenlerine ek olarak, binary ve force-encode-first bağımsız değişkenlerini de destekler. convert.quoted-printable-encode süzgeci, kodlanmış veriden yararlı yükü ayırmak için bir ipucu olarak sadece line-break-chars bağımsız değişkenini destekler.

Örnek 2 - convert.quoted-printable-encode ve convert.quoted-printable-decode örneği

<?php
$fp
= fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "Bu küçük bir denemedir.\n");
/* Çıktısı: Bu k=C3=BC=C3=A7=C3=BCk bir denemedir.=0A */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-decode');
fwrite($fp, "Bu k=C3=BC=C3=A7=C3=BCk bir denemedir.=0A");
/* Çıktısı: Bu küçük bir denemedir.
*/
?>

convert.iconv.*

convert.iconv.* süzgeçleri iconv desteği etkinse kullanılabilir olup tüm akım verisinin iconv() ile işlenmesine eşdeğerdir. Bu süzgeçler bağımsız değişkenleri desteklememekle beraber girdi ve çıktı kodlamaları süzgeç isminin parçası olarak verilebilir. Örneğin, convert.iconv.<input-encoding>.<output-encoding> veya convert.iconv.<input-encoding>/<output-encoding> (her iki gösterim anlamsal olarak eşdeğerdir).

Örnek 3 - convert.iconv.* örneği

<?php
$fp
= fopen('php://output', 'w');
stream_filter_append($fp, 'convert.iconv.utf-16le.utf-8');
fwrite($fp, "T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.\0\n\0");
fclose($fp);
/* Çıktısı: This is a test. */
?>
add a note add a note

User Contributed Notes 1 note

up
1
marcus at synchromedia dot co dot uk
2 years ago
It's not quite obvious what all the available parameters are for convert.quoted-printable-encode. If you want the stream filter to act the same way as the quoted_printable_encode function, you need these extra params, for example:

stream_filter_append(
    STDOUT,
    'convert.quoted-printable-encode',
    STREAM_FILTER_WRITE,
    [
        'line-break-chars' => PHP_EOL,
        'line-length' => 75,
    ]
);
echo stream_copy_to_stream(STDIN, STDOUT);

Without these extra params set, you may get no wrapping at all, or wrapping using the wrong line break sequence.
To Top