PHP 8.0.26 Released!

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

User Contributed Notes 1 note

up
0
marcus at synchromedia dot co dot uk
6 months 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