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