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.Филтри за конверзија
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Филтри за конверзија
Референца за `filters.convert.php` со подобрена типографија и навигација.
Филтри за конверзија
Како и филтрите string.*, филтрите convert.* извршуваат дејства слични на нивните имиња. За повеќе информации за даден филтер, погледнете ја страницата со упатства за соодветната функција.
convert.base64-encode и convert.base64-decode
Користењето на овие филтри е еквивалентно на обработка на сите податоци од потокот преку base64_encode() and base64_decode()
односно функциите.
convert.base64-encode поддржува параметри дадени како асоцијативен низ. Ако line-length е дадено, излезот base64 ќе биде поделен на парчиња од line-length
знаци секое. Ако line-break-chars е дадено, секое парче ќе биде разграничено со дадените знаци. Овие параметри го даваат истиот ефект како користење на base64_encode() with
chunk_split().
Пример #1 convert.base64-encode & convert.base64-decode
<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "This is a test.\n");
fclose($fp);
/* Outputs: VGhpcyBpcyBhIHRlc3QuCg== */
$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, "This is a test.\n");
fclose($fp);
/* Outputs: VGhpcyBp
: cyBhIHRl
: c3QuCg== */
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* Outputs: This is a test. */
?>convert.quoted-printable-encode и convert.quoted-printable-decode
Користењето на верзијата за декодирање на овој филтер е еквивалентно на обработка на сите податоци од потокот преку quoted_printable_decode() функција. Не постои еквивалентна функција на convert.quoted-printable-encode.
convert.quoted-printable-encode поддржува параметри дадени како асоцијативен низ. Покрај параметрите поддржани од
convert.base64-encode, convert.quoted-printable-encode
исто така поддржува булови аргументи binary and
force-encode-first.
convert.base64-decode поддржува само
line-break-chars параметар како тип-сугестија за отстранување од кодираното оптоварување.
Пример #2 convert.quoted-printable-encode & convert.quoted-printable-decode
<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "This is a test.\n");
/* Outputs: =This is a test.=0A */
?>convert.iconv.*
На convert.iconv.* филтрите се достапни, ако
iconv поддршката е овозможена, и нивната употреба е еквивалентна на обработка на сите податоци од потокот со iconv(). Овие филтри не поддржуваат параметри, туку очекуваат влезните и излезните кодови да бидат дадени како дел од името на филтерот, т.е. или како
convert.iconv.<input-encoding>.<output-encoding> or
convert.iconv.<input-encoding>/<output-encoding>
(двете нотации се семантички еквивалентни).
Пример #3 convert.iconv.*
<?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);
/* Outputs: This is a test. */
?>