PHP Quoted Printable是PHP中重要的一個函數,可以用于編碼或解碼MIME消息正文的一部分或整個消息。
舉個例子,假設我們有一封郵件內容如下:
Subject: 訂單已收到 From: customer_service@example.com Content-Type: text/html; charset="UTF-8" 親愛的客戶,感謝您的購買,您的訂單已收到。 產品名稱:PHP編程入門 訂單號:0000001 數量:1 請耐心等待我們的發貨。如果有任何問題,請隨時聯系我們。 祝您愉快! 客戶服務團隊
這是一個典型的MIME消息,我們可以使用PHP Quoted Printable函數編碼或解碼消息正文部分,例如:
$message = '親愛的客戶,感謝您的購買,您的訂單已收到。 產品名稱:PHP編程入門 訂單號:0000001 數量:1 請耐心等待我們的發貨。如果有任何問題,請隨時聯系我們。 祝您愉快! 客戶服務團隊'; // 編碼正文 $encodedMessage = quoted_printable_encode($message); // 解碼正文 $decodedMessage = quoted_printable_decode($encodedMessage);
通過上面的例子,我們可以看到PHP Quoted Printable函數非常簡單易用,使用起來也非常方便。
該函數還可以接受第二個參數$lineLength,可以指定編碼后每行的長度(默認為76),例如:
$message = '親愛的客戶,感謝您的購買,您的訂單已收到。 產品名稱:PHP編程入門,PHP Quoted Printable函數介紹 訂單號:0000001 數量:1 請耐心等待我們的發貨。如果有任何問題,請隨時聯系我們。 祝您愉快! 客戶服務團隊'; // 編碼正文,每行長度為100 $encodedMessage = quoted_printable_encode($message, 100);
除了編碼和解碼消息正文外,PHP Quoted Printable函數還可以編碼和解碼消息頭部,例如:
$header = "From: customer_service@example.com\n"; $header .= "Subject: =?UTF-8?Q?=E8=AE=A2=E5=8D=95=E5=B7=B2=E6=94=B6=E5=88=B0?=\n"; $header .= " =?UTF-8?Q?=E7=BB=93=E6=9E=9C=E5=8F=8A=E5=A4=84=E7=90=86=E6=96=B9=E6=B3=95=E4=BF=A1=E6=81=AF?="; // 編碼頭部 $encodedHeader = quoted_printable_encode($header); // 解碼頭部 $decodedHeader = quoted_printable_decode($encodedHeader);
最后,需要注意的是,PHP Quoted Printable函數不會自動處理特殊字符,例如:<、>、"、',需要自行轉義。