首頁 >後端開發 >PHP問題 >php闖關字串與quoted-printable字元相互轉換

php闖關字串與quoted-printable字元相互轉換

醉折花枝作酒筹
醉折花枝作酒筹原創
2021-08-04 11:49:102321瀏覽

上一篇文章中我們了解了去除右側字元的方法,有需要的請看《php字串闖關之去除右側字元》。這次我們向大家介紹字串與quoted-printable字元相互轉換的方法,有需要的可以參考參考。

在開始這篇文章學習之前,我們先來看看什麼叫做quoted-printable。

Quoted-printable可翻譯為“可列印字元引用編碼”、“使用可列印字元的編碼”,我們收郵件,查看信件原始訊息,經常會看到這種類型的編碼!

它是多用途Internet郵件擴充(Mime)的一個實作。 Mime是一種Internet標準,它擴展了電子郵件標準,並致力於支援各種格式的電子郵件,例如非ASCII字元、二進位格式附件等。目前,許多HTTP協定使用mime框架! Quoted printable是指使用一些常見的可列印字元來表示一個位元組(8位元)中的所有不可列印字元!

對Quoted-printable有個了解之後,我們就來開始我們的正題吧。

首先我們需要將字串轉換成Quoted-printable,這樣才能將Quoted-printable字串轉換成普通字元。

我們來看一個小例子。

<?php 
$str = quoted_printable_encode("Hello
Aworld.");
echo($str); 
?>

這個的結果就是

php闖關字串與quoted-printable字元相互轉換

我們看這個結果是不是有點奇怪,這個「=0A」是怎麼出來的,讓我們看看程式碼,我們在hello這個單字後面使用了鍵盤上的換行鍵,雖然這在普通html或php中是沒有問題的,並沒有發生折行。但是在這個函數中,不可以,它會將這個回車鍵解析出來。

了解這些之後,我們就去具體介紹一下這個函數吧。

quoted_printable_encode() 函數把 8 位元字串轉換成 quoted-printable 字串。

其實它是語法很簡單,就是

quoted_printable_encode(string)

但是我們使用這個函數的時候需要注意:

經過quoted-printable編碼後的資料與透過郵件傳輸進行修改的不一樣。一個完全 US-ASCII 的文字可進行 quoted-printable 編碼,用來確保透過文字翻譯或線包閘道進行訊息傳遞時資料的完整性。

接下來我們就將quoted-printable編碼的資料還原吧。

我們就將上面這個例子的資料還原吧。

<?php 
$str = quoted_printable_decode("Hello=0AAworld.");
echo($str); 
?>

當這個範例在瀏覽器輸出時

php闖關字串與quoted-printable字元相互轉換

#當這個範例在html輸出時

php闖關字串與quoted-printable字元相互轉換

這樣一對比,是不是就能看出區別啦,這個函數解碼後的程式碼在瀏覽器上是不顯示「=0A」解碼結果的,但是在html中是會有具體效果的。

就說到這裡了,有其他想知道的,可以點選這個喔。 → →php影片教學

#

以上是php闖關字串與quoted-printable字元相互轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn