関数の概要
mb_decode_mimeheaderは、PHPのマルチバイト文字列関数の一つで、メールヘッダーに使われるMIMEエンコードされた文字列をデコードするための関数です。メールの件名や送信者名などに含まれる特殊なエンコードを元の日本語文字列に戻す際に利用されます。
パラメータの説明
- string $string
デコードしたいMIMEエンコードされたメールヘッダー文字列を指定します。
戻り値
デコードされたマルチバイト文字列を返します。もし入力が正しくエンコードされていない場合でも、できる限り元の文字列を復元します。
使用例
基本的な使い方
<?php
$encoded = '=?ISO-2022-JP?B?GyRCJTUlJCViJXMlOCVHISQbKEI=?=';
$decoded = mb_decode_mimeheader($encoded);
echo $decoded;
?>
ISO-2022-JPでエンコードされたヘッダー文字列をデコードし、日本語テキストとして出力します。
UTF-8でエンコードされた件名のデコード
<?php
$encoded = '=?UTF-8?B?44GT44KT44Gr44Gh44Gv?=';
$decoded = mb_decode_mimeheader($encoded);
echo $decoded;
?>
UTF-8のBase64エンコードされた文字列を復元し、「こんにちは」と表示します。
複数のエンコード部分を含むヘッダーのデコード
<?php
$encoded = '=?ISO-2022-JP?B?GyRCJTUlJCViJXMlOCVHISQbKEI=?= =?UTF-8?B?44GT44KT?=';
$decoded = mb_decode_mimeheader($encoded);
echo $decoded;
?>
異なるエンコード形式が混在するMIMEヘッダーでも自動的に適切に処理し、一つの文字列として復元します。
関連する関数
mb_encode_mimeheader– 文字列をMIMEエンコード形式に変換するmb_convert_encoding– 文字列のエンコーディング変換を行うimap_mime_header_decode– IMAPメールのMIMEヘッダーをデコードする(IMAP拡張が必要)
まとめ
mb_decode_mimeheaderは、メールヘッダーに使われるMIMEエンコードされた文字列を簡単にデコードできる便利な関数です。メールの件名や送信者名を正しい文字列で表示したい場合に非常に役立ちます。複数のエンコード形式に対応しており、マルチバイト文字も正確に復元できるため、実務でも安心して使用できます。
