ใน PHP iconv_mime_decode_headers() ฟังก์ชั่นใช้เพื่อถอดรหัสฟิลด์ส่วนหัว MIME หลายฟิลด์พร้อมกัน เป็นฟังก์ชันที่สร้างขึ้นใน PHP
ไวยากรณ์
iconv_mime_decode_headers($str_headers, $int_mode, $str_encoding)
พารามิเตอร์
The iconv_mime_decode_headers() ฟังก์ชั่นยอมรับพารามิเตอร์ที่แตกต่างกันสามตัว $headers , $mode และ $encoding .
-
$headers − พารามิเตอร์ $header ใช้สำหรับส่วนหัวที่เข้ารหัส เป็นพารามิเตอร์ประเภทสตริง
-
โหมด$ − พารามิเตอร์ $mode กำหนดพฤติกรรมในเหตุการณ์ iconv_mime_decode_headers() พบฟิลด์ส่วนหัว MIME ที่ผิดรูป เราสามารถใช้บิตมาสก์ต่อไปนี้ร่วมกันได้
-
รายการบิตมาสก์ที่ iconv_mime_decode_headers() ยอมรับได้
- ICONV_MIME_DECODE_STRICT
- ICONV_MIME_DECODE_CONTINUE_ON_ERROR
- ICONV_MIME_DECODE_STRICT - หาก iconv_mime_decode_strict ถูกตั้งค่า ส่วนหัวที่กำหนดจะถูกถอดรหัสตามความสอดคล้องอย่างสมบูรณ์ แต่ตัวเลือกนี้ถูกปิดใช้งานโดยค่าเริ่มต้นเนื่องจากมีตัวแทนผู้ใช้เมลที่ใช้งานไม่ได้จำนวนมากที่ไม่เป็นไปตามข้อกำหนดและไม่สร้างส่วนหัว MIME ที่ถูกต้อง
- ICONV_MIME_DECODE_CONTINUE_ON_ERROR - หาก iconv_mime_decode_continue_on_error() มีการตั้งค่าพารามิเตอร์ไว้ โดยจะพยายามละเว้นข้อผิดพลาดทางไวยากรณ์และดำเนินการประมวลผลส่วนหัวที่กำหนดต่อไป
-
เข้ารหัส $ − การเข้ารหัสเป็นพารามิเตอร์ทางเลือกที่ใช้ในการระบุชุดอักขระเพื่อแสดงผลลัพธ์ iconv.internal_encoding จะถูกใช้หากไม่ระบุหรือไม่มีค่า
ผลตอบแทนที่ได้รับ
iconv_mime_decode_headers() ฟังก์ชันจะคืนค่า associative array ที่เก็บทั้งชุดของฟิลด์ส่วนหัว MIME ที่ระบุโดย headers เมื่อสำเร็จ หรือส่งกลับค่า False หากเกิดข้อผิดพลาดขึ้นในระหว่างการถอดรหัส
ตัวอย่างที่ 1
<pre> <?php $str_headers = <<<EOF Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?= To: [email protected] Date: Mon, 21 Jun 2021 00:00:00 +0000 Message-Id: <[email protected]> Received: from localhost (localhost [127.0.0.1]) by localhost with SMTP id xyz for <[email protected]>; Mon, 21 Jun 2021 00:00:00 +0000 (UTC) (envelope-from [email protected]) Received: (qmail 0 invoked by uid 65534); 21 Mon 2005 00:00:00 +0000 EOF; $headers = iconv_mime_decode_headers($str_headers, 0, "ISO-8859-1"); print_r($headers); ?> </pre>
ผลลัพธ์
Array ( [Subject] => Pr�fung Pr�fung [To] => [email protected] [Date] => Mon, 21 Jun 2021 00:00:00 +0000 [Message-Id] => [Received] => Array ( [0] => from localhost (localhost [127.0.0.1]) by localhost with SMTP id xyz for ; Mon, 21 Jun 2021 00:00:00 +0000 (UTC) (envelope-from [email protected]) [1] => (qmail 0 invoked by uid 65534); 21 Mon 2005 00:00:00 +0000 ) )