Computer >> Máy Tính >  >> Lập trình >> PHP

PHP - Giải mã nhiều trường tiêu đề MIME cùng một lúc bằng iconv_mime_decode_headers ()


Trong PHP, iconv_mime_decode_headers () hàm được sử dụng để giải mã nhiều trường tiêu đề MIME cùng một lúc. Đây là một hàm tích hợp sẵn trong PHP.

Cú pháp

iconv_mime_decode_headers($str_headers, $int_mode, $str_encoding)

Tham số

iconv_mime_decode_headers () hàm chấp nhận ba tham số khác nhau− $ headers , chế độ $ $ encoding .

  • $ headers - Tham số $ header được sử dụng cho các tiêu đề được mã hóa. Đây là một tham số kiểu chuỗi.

  • Chế độ $ - Tham số $ mode xác định hành vi trong sự kiện iconv_mime_decode_headers () gặp trường tiêu đề MIME bị biến dạng. Chúng tôi có thể sử dụng bất kỳ sự kết hợp nào của các mặt nạ bit sau.

  • Danh sách mặt nạ bit được chấp nhận đối với iconv_mime_decode_headers ()

    • ICONV_MIME_DECODE_STRICT
    • ICONV_MIME_DECODE_CONTINUE_ON_ERROR
    • ICONV_MIME_DECODE_STRICT - Nếu iconv_mime_decode_strict được đặt, tiêu đề nhất định được giải mã theo đúng quy cách nhưng tùy chọn này bị tắt theo mặc định do nhiều tác nhân người dùng thư bị hỏng không tuân theo yêu cầu và không tạo tiêu đề MIME chính xác.
    • ICONV_MIME_DECODE_CONTINUE_ON_ERROR - Nếu iconv_mime_decode_continue_on_error () tham số được đặt, nó cố gắng bỏ qua bất kỳ lỗi ngữ pháp nào và tiếp tục xử lý một tiêu đề nhất định.
  • Mã hóa $ - Bảng mã là một tham số tùy chọn được sử dụng để chỉ định bộ ký tự để biểu diễn kết quả. Biểu tượngv.internal_encoding sẽ được sử dụng nếu bị bỏ qua hoặc rỗng.

Giá trị trả lại

iconv_mime_decode_headers () hàm trả về một mảng kết hợp chứa toàn bộ tập hợp các trường tiêu đề MIME được chỉ định bởi các tiêu đề khi thành công hoặc nó trả về Sai nếu có bất kỳ lỗi nào phát sinh trong quá trình giải mã.

Ví dụ 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>

Đầu ra

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
      )
)