php對gb編碼動態轉utf-8編碼的幾種方法評測(3)_PHP教程
推薦:php配置文件php.ini的中文注釋版這個文件控制了PHP許多方面的觀點。為了讓PHP讀取這個文件,它必須被命名為 ; ´php.ini´。PHP 將在這些地方依次查找該文件:當前工作目錄;環境變量PHPRC ; 指明的路徑;
可見二進制文件折半法還比MySQL法略有優勢。但是上述測評都是對短的地理位置進行轉碼,如果對較長的文本轉碼又如何呢?我找來5個Blog的RSS 2.0文件,都是GB2312編碼。測評三種方法對5個文件編碼耗費的時間,2次測量數據如下(精確到3位小數,單位:秒):
MySQL方法:7.206
文本文件方法:0.772
二進制文件折半法:5.022
MySQL方法:7.440
文本文件方法:0.766
二進制文件折半法:5.055
可見對長的文本是用文本文件的方法最優,因為轉碼對照表讀入內存后,轉碼就可以很高效了。既然如此,我們還可以嘗試改進一下,把文本文件方法改為:轉碼對照表從二進制文件gbu.dat讀入內存,而不是文本文件。測評數據如下(精度和單位同上):
從文本文件讀入對照表:0.766
從二進制文件讀入對照表:0.831
從文本文件讀入對照表:0.774
從二進制文件讀入對照表:0.833
表明這次改進失敗了,從文本文件讀入轉碼對照表更高效。
總結:用PHP對GB編碼到UTF-8編碼的動態轉換,如果每次轉換的文本很小,適宜用二進制文件結合折半法轉換;如果每次轉換的文本較大,適宜用文本文件存儲轉碼對照表,并在轉換前一次性把對照表讀入內存。
分享:PHP技巧:php過濾危險html代碼用PHP過濾html里可能被利用來引入外部危險內容的代碼。有些時候,需要讓用戶提交html內容,以便豐富用戶發布的信息,當然,有些可能造成顯示頁面布局混亂的代碼也在過濾范圍內。
- 相關鏈接:
- 教程說明:
PHP教程-php對gb編碼動態轉utf-8編碼的幾種方法評測(3)
。