PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのmb_encode_mimeheader()関数でMIMEヘッダー用文字列をエンコードする方法

PHPでは、mb_encode_mimeheader()関数を使用することで、MIME(Multipurpose Internet Mail Extensions)ヘッダー用に文字列をエンコードできます。この関数は、指定された文字列をMIMEヘッダーエンコード方式に従って変換し、メールヘッダー内で安全に扱えるASCII形式の文字列を生成します。

構文

string mb_encode_mimeheader(str $string, str $charset, str $transfer_encoding, str $newLine, int $indent)

パラメータ

mb_encode_mimeheader()関数は、以下の5つのパラメータを受け取ります。

  • $string − エンコード対象の文字列を指定します。この文字列のエンコーディングは、mb_internal_encoding()で設定された内部エンコーディングと一致している必要があります。

  • $charset − 文字列が表現される文字セット名を指定します。

  • $transfer_encoding − MIMEエンコードの方式を指定します。base64(B)またはQuoted-Printable(Q)のいずれかを選択できます。省略した場合は、デフォルトでbase64(B)が適用されます。

  • $newLine − mb_encode_mimeheader()が行折り返し(line-folding)を行う際に使用する行末(EOL)マーカーを指定します。

  • $indent − 先頭行のインデント幅を指定します。

戻り値

この関数は、ASCII表現に変換された文字列を返します。

例1

<?php
   $name = "Online tutorials";
   $mbox = "nru";
   $doma = "gtin.thu";
   $addr = mb_encode_mimeheader($name,"UTF-7","Q")." <".$mbox."@".$doma.">";
   echo $addr;
?>

出力結果

Online tutorials

この例では、mb_encode_mimeheader()を使って送信者名をエンコードし、メールアドレス形式の文字列を組み立てています。

例2

<?php
   $string = "\xe2\x86\x92";
   mb_internal_encoding( "UTF-8");
   echo mb_encode_mimeheader($string, 'UTF-8');
?>

出力結果

=?UTF-8?B?4oaS?=

この例では、内部エンコーディングをUTF-8に設定した上で、特殊文字を含む文字列をエンコードしています。結果として、「=?UTF-8?B?4oaS?=」のようなMIMEエンコードワード形式の文字列が出力されます。これは、マルチバイト文字をメールヘッダーに安全に埋め込むための標準的な形式です。

  1. PHPで配列のキーをリセットする方法【array_values()関数の使い方】

    PHPでは、array_values()関数を使うことで、配列のキーを簡単にリセット(振り直し)できます。この関数は、元の配列からすべての値を取り出し、0から始まる連番の新しいキーを割り当てた配列を返します。 array_values()関数とは array_values()は、文字列キーを持つ連想配列や、飛び飛びの数値キーを持つ配列など、任意のキー構成の配列を受け取り、値だけを抽出してインデックス(0, 1, 2, ...)を振り直した新しい配列を返す組み込み関数です。元の配列そのものは変更されず、結果は新しい配列として返される点に注意してください。 例1:文字列キーの配列をリセットする ま

  2. PHPでランダム文字列を生成する方法【初心者向けサンプルコード付き】

    PHPでランダムな文字列を生成するには、いくつかの方法があります。本記事では、md5() 関数と mt_rand() 関数を組み合わせたシンプルな手法と、PHP 7以降で利用できる暗号学的に安全な random_bytes() 関数を使った方法を、サンプルコードと実行結果とともに解説します。 例1:md5() と mt_rand() を組み合わせる方法 mt_rand() で生成した乱数を md5() でハッシュ化し、substr() で先頭5文字を切り出すことで、ランダムな文字列を作成します。 <?php    $res = substr(md5(mt_rand()