Як і фільтри string.*, фільтри convert.* виконують дії відповідно до своєї назви. Докладніша інформація щодо певного фільтру є на сторінці посібника для відповідної функції.
Використання цих фільтрів еквівалентне обробці всіх потокових даних
функціями base64_encode() та
base64_decode() відповідно.
convert.base64-encode
підтримує параметри у вигляді
асоціативного масиву. Якщо дано line-length
, то
вивід base64 буде поділено на відрізки з довжиною
line-length
символів кожен. Якщо дано
line-break-chars
, то кожен відрізок буде розділений
заданими символами. Ці памаметри дають той самий ефект при використанні
base64_encode() із 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);
/* Виводить: 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);
/* ВИводить: VGhpcyBp
: cyBhIHRl
: c3QuCg== */
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* Виводить: This is a test. */
?>
Використання фільтру для декодування еквівалентне обробці всіх потокових
даних функцією quoted_printable_decode().
Немає еквівалентної функції до convert.quoted-printable-encode
.
convert.quoted-printable-encode
підримує параметри,
подані як асоціативний масив. В додаток до параметрів, підтримуваних
фунцією convert.base64-encode
,
convert.quoted-printable-encode
також підтримує логічні
аргументи binary
і
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");
/* Виводить: =This is a test.=0A */
?>
Фільтри convert.iconv.*
доступні, якщо увімкнена
підтримка iconv, а їхнє використання
еквівалентне обробці всіх потокових даних функціями
iconv(). Ці фільтри не підтримують параметрів, та
натомість містять у своїх назвах кодування для вхідих і вихідних даних:
convert.iconv.<input-encoding>.<output-encoding>
або
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);
/* Виводить: This is a test. */
?>