ConFoo 2025

imap_utf8

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_utf8Преобразовывает MIME-кодированный текст в UTF-8

Описание

imap_utf8(string $mime_encoded_text): string

Преобразовывает заданную в параметре mime_encoded_text строку в UTF-8, если заявленная кодировка известна модулю libc-client. В противном случае данный текст декодируется, но не преобразовывается в UTF-8.

Список параметров

mime_encoded_text

MIME-кодированная строка. Метод кодирования MIME и спецификация UTF-8 описаны в » RFC2047 и » RFC2044 соответственно.

Возвращаемые значения

Возвращает декодированную строку, если возможно, преобразованную в UTF-8.

Примеры

Пример #1 Базовое использование imap_utf8()

<?php
echo imap_utf8("Johannes =?ISO-8859-1?Q?Schl=FCter?=");
?>

Вывод приведённого примера будет похож на:

Johannes Schlüter

Смотрите также

Добавить

Примечания пользователей 3 notes

up
7
esvit at mail dot ru
13 years ago
That fixed the all caps issue:

<?php
function imap_utf8_fix($string) {
return
iconv_mime_decode($string,0,"UTF-8");
}
?>
up
5
kloewer at gmail dot com
13 years ago
Use iconv_mime_decode();

<?php
// This yields "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
0, "ISO-8859-1");
?>

http://php.net/manual/de/function.iconv-mime-decode.php
up
2
marcelo at maccoy dot com dot br
19 years ago
# this script are correct with the right signs remove expression
# please, ignore the later.
function decode_utf8($str){
# paterns
$err="(=\?.{10,13}q\?_?|\?\=)";
$pat = "/=([0-9A-F]{2})/";
$cha="'.chr(hexdec(";
# erase null signs in string
$str=eregi_replace($err,"",$str);
# to decode with eval and replace
eval("\$str='".
preg_replace($pat,$cha."'$1')).'",$str)
."';");
# return
return $str;
}
#Note: you can to reduce this script in 3 lines.
To Top