上一篇文章中我們了解了去除右側字符的方法,有需要的請看《php字符串闖關之去除右側字符》。這次我們向大家介紹字符串與quoted-printable字符相互轉換的方法,有需要的可以參考參考。
在開始本篇文章學習之前,我們先來看一下什么叫做quoted-printable。
Quoted-printable可譯為“可打印字符引用編碼”、“使用可打印字符的編碼”,我們收郵件,查看信件原始信息,經常會看到這種類型的編碼!
它是多用途Internet郵件擴展(Mime)的一個實現(xiàn)。Mime是一種Internet標準,它擴展了電子郵件標準,并致力于支持各種格式的電子郵件,如非ASCII字符、二進制格式附件等。目前,許多HTTP協(xié)議使用mime框架!Quoted printable是指使用一些常見的可打印字符來表示一個字節(jié)(8位)中的所有不可打印字符!
對Quoted-printable有一個了解之后,我們就來開始我們的正題吧。
首先我們需要將字符串轉換成Quoted-printable,這樣才能將Quoted-printable字符串轉換成普通字符。
我們來看一個小例子。
<?php $str = quoted_printable_encode("Hello Aworld."); echo($str); ?>
這個的結果就是
我們看這個結果是不是有點奇怪,這個“=0A
”是怎么出來的,讓我們看看代碼,我們在hello這個單詞后面使用了鍵盤上的換行鍵,雖然這在普通html或是php中是沒有問題的,并沒有發(fā)生折行。但是在這個函數(shù)中,不可以,它會將這個回車鍵解析出來。
了解這些之后,我們去具體介紹一下這個函數(shù)吧。
quoted_printable_encode()
函數(shù)把 8
位字符串轉換為 quoted-printable
字符串。
其實它是語法很簡單,就是
quoted_printable_encode(string)
但是我們使用這個函數(shù)的時候需要注意:
經過 quoted-printable編碼后的數(shù)據(jù)與通過郵件傳輸進行修改的不一樣。一個完全 US-ASCII
的文本可進行 quoted-printable 編碼,用來確保通過文字翻譯或線包網關進行消息傳遞時數(shù)據(jù)的完整性。
接下來我們就將quoted-printable編碼的數(shù)據(jù)還原吧。
我們就將上面這個例子的數(shù)據(jù)還原吧。
<?php $str = quoted_printable_decode("Hello=0AAworld."); echo($str); ?>
當這個例子在瀏覽器輸出時
當這個例子在html輸出時
這樣一對比,是不是就能看出區(qū)別啦,這個函數(shù)解碼后的代碼在瀏覽器上是不顯示“=0A
”解碼結果的,但是在html中是會有具體效果的。
就說到這里了,有其他想知道的,可以點擊這個哦?!?→php視頻教程