php對gb編碼動態(tài)轉(zhuǎn)utf-8編碼的幾種方法評測(3)_PHP教程
推薦:php配置文件php.ini的中文注釋版這個文件控制了PHP許多方面的觀點。為了讓PHP讀取這個文件,它必須被命名為 ; ´php.ini´。PHP 將在這些地方依次查找該文件:當(dāng)前工作目錄;環(huán)境變量PHPRC ; 指明的路徑;
可見二進(jìn)制文件折半法還比MySQL法略有優(yōu)勢。但是上述測評都是對短的地理位置進(jìn)行轉(zhuǎn)碼,如果對較長的文本轉(zhuǎn)碼又如何呢?我找來5個Blog的RSS 2.0文件,都是GB2312編碼。測評三種方法對5個文件編碼耗費的時間,2次測量數(shù)據(jù)如下(精確到3位小數(shù),單位:秒):
MySQL方法:7.206
文本文件方法:0.772
二進(jìn)制文件折半法:5.022
MySQL方法:7.440
文本文件方法:0.766
二進(jìn)制文件折半法:5.055
可見對長的文本是用文本文件的方法最優(yōu),因為轉(zhuǎn)碼對照表讀入內(nèi)存后,轉(zhuǎn)碼就可以很高效了。既然如此,我們還可以嘗試改進(jìn)一下,把文本文件方法改為:轉(zhuǎn)碼對照表從二進(jìn)制文件gbu.dat讀入內(nèi)存,而不是文本文件。測評數(shù)據(jù)如下(精度和單位同上):
從文本文件讀入對照表:0.766
從二進(jìn)制文件讀入對照表:0.831
從文本文件讀入對照表:0.774
從二進(jìn)制文件讀入對照表:0.833
表明這次改進(jìn)失敗了,從文本文件讀入轉(zhuǎn)碼對照表更高效。
總結(jié):用PHP對GB編碼到UTF-8編碼的動態(tài)轉(zhuǎn)換,如果每次轉(zhuǎn)換的文本很小,適宜用二進(jìn)制文件結(jié)合折半法轉(zhuǎn)換;如果每次轉(zhuǎn)換的文本較大,適宜用文本文件存儲轉(zhuǎn)碼對照表,并在轉(zhuǎn)換前一次性把對照表讀入內(nèi)存。
分享:PHP技巧:php過濾危險html代碼用PHP過濾html里可能被利用來引入外部危險內(nèi)容的代碼。有些時候,需要讓用戶提交html內(nèi)容,以便豐富用戶發(fā)布的信息,當(dāng)然,有些可能造成顯示頁面布局混亂的代碼也在過濾范圍內(nèi)。
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁面代碼執(zhí)行時間
- PHP中獎概率的抽獎算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問控制的和運算符優(yōu)先級介紹
- 關(guān)于PHP語言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國語言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
- 相關(guān)鏈接:
- 教程說明:
PHP教程-php對gb編碼動態(tài)轉(zhuǎn)utf-8編碼的幾種方法評測(3)
。