概要:本文對(duì)PHP的輸出控制功能進(jìn)行了簡(jiǎn)單介紹并對(duì)其在簡(jiǎn)繁體轉(zhuǎn)化中的應(yīng)用給出了具體思路和實(shí)例。
一 PHP 輸出控制功能介紹
PHP作為當(dāng)今流行的腳本語言之一,具有編寫簡(jiǎn)便,執(zhí)行速度快,擴(kuò)充性好等優(yōu)點(diǎn)。PHP的輸出信息控制函數(shù)可以讓你控制你的腳本輸出的內(nèi)容,可以用于許多不同的情況,特別是在你的腳本已經(jīng)輸出信息后需要發(fā)送文件頭的情況以及需要對(duì)輸出信息進(jìn)行編輯處理的地方。輸出控制函數(shù)不對(duì)使用 header() 或 setcookie() 發(fā)送的文件頭信息產(chǎn)生影響,只對(duì)那些類似于 echo()、print() 和 PHP 代碼的數(shù)據(jù)塊有作用。
例 1. 控制輸出
| 以下為引用的內(nèi)容: test.php
function test($str){ return str_replace("php2000","y10k",$str); } ob_start("test"); echo "hello php2000"; ob_end_flush(); ?> |
這個(gè)程序在沒有輸出信息控制的情況下應(yīng)該輸出為
hello php2000
但通過指定了輸出控制函數(shù)后,輸出變?yōu)?/p>
hello y10k
在上面的例子中,使用 echo() 的輸出內(nèi)容將會(huì)保存在輸出緩沖區(qū)中,直到調(diào)用了 ob_end_flush()或者腳本運(yùn)行終止, 然后輸出信息由自定義的處理函數(shù)進(jìn)行處理(替換里面的字符串)并返回結(jié)果。
相關(guān)函數(shù)說明:
ob_start([string output_callback])- 打開輸出緩沖區(qū)
所有的輸出信息不在直接發(fā)送到瀏覽器,而是保存在輸出緩沖區(qū)里面,可選得回調(diào)函數(shù)用于處理輸出結(jié)果信息。
ob_end_flush - 結(jié)束(發(fā)送)輸出緩沖區(qū)的內(nèi)容,關(guān)閉輸出緩沖區(qū)
二 簡(jiǎn)繁體轉(zhuǎn)換的實(shí)現(xiàn)
一般通過對(duì)照表的形式實(shí)現(xiàn),相關(guān)的文章非常多,這里就不多講了,只給出其實(shí)現(xiàn)代碼
| 以下為引用的內(nèi)容: function gb2big5($str) { global $_gb_big5_; $leng = strlen($str)-1; for($i = 0; $i<$leng; $i ){ $h = ord($str[$i]); if($h>=160){ $l = ord($str[$i 1]); $gb=($h==161 && $l==64)?" " : substr($_gb_big5_, ($h-160)*510 ($l-1)*2, 2); $str[$i] = $gb[0]; $str[$i 1] = $gb[1]; $i ; } } return $str; } ?> |
其中:
$gb_big5_ 保存著big5 的字庫對(duì)照表
$str 為要轉(zhuǎn)化的字符串
新聞熱點(diǎn)
疑難解答