P輸出控制功能在簡繁體轉(zhuǎn)換中的應(yīng)用
Jun 08, 2016 pm 05:33 PM概要:本文對PHP的輸出控制功能進行了簡單介紹并對其在簡繁體轉(zhuǎn)化中的應(yīng)用給出了具體思路和實例
一 PHP 輸出控制功能介紹
PHP作為當今流行的腳本語言之一,具有編寫簡便,執(zhí)行速度快,擴充性好等優(yōu)點。PHP的輸出信息控制函數(shù)可以讓你控制你的腳本輸出的內(nèi)容,可以用于許多不同的情況,非凡是在你的腳本已經(jīng)輸出信息后需要發(fā)送文件頭的情況以及需要對輸出信息進行編輯處理的地方。輸出控制函數(shù)不對使用 header() 或 setcookie() 發(fā)送的文件頭信息產(chǎn)生影響,只對那些類似于 echo()、print() 和 PHP 代碼的數(shù)據(jù)塊有作用。
例 1. 控制輸出
test.php
function test($str){
return str_replace("php2000","y10k",$str);
}
ob_start("test");
echo "hello php2000";
ob_end_flush();
?>
這個程序在沒有輸出信息控制的情況下應(yīng)該輸出為
hello php2000
但通過指定了輸出控制函數(shù)后,輸出變?yōu)?br>
hello y10k
在上面的例子中,使用 echo() 的輸出內(nèi)容將會保存在輸出緩沖區(qū)中,直到調(diào)用了 ob_end_flush()或者腳本運行終止, 然后輸出信息由自定義的處理函數(shù)進行處理(替換里面的字符串)并返回結(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ū)
二 簡繁體轉(zhuǎn)換的實現(xiàn)
一般通過對照表的形式實現(xiàn),相關(guān)的文章非常多,這里就不多講了,只給出其實現(xiàn)代碼
function gb2big5($str) {
global $_gb_big5_;
$leng = strlen($str)-1;
for($i = 0; $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 的字庫對照表
$str 為要轉(zhuǎn)化的字符串
三 輸出控制函數(shù)在簡繁體轉(zhuǎn)化中的應(yīng)用
目前的大多數(shù)網(wǎng)站的簡繁體頁面轉(zhuǎn)換都是通過各自單獨的頁面實現(xiàn)的,這樣導(dǎo)致在修改簡體頁面的時候還需要再次修改繁體的頁面,不能做到自動同步。而我們提供的這個方法,可以實現(xiàn)同一個頁面自動的變換簡繁體顯示。其實現(xiàn)方法是:
1 建立簡繁體標志,用于指示當前顯示的簡繁體狀態(tài),同時對簡繁體狀態(tài)進行切換
php2000_gb_big5.php
session_start(); // 打開session 功能,用于在各個頁面之間自動傳遞標志
if(!session_is_registered("php2000_big5")){ // 檢查簡繁體標志的注冊狀態(tài)
session_register("php2000_big5"); // 注冊簡繁體標志,簡體=0;繁體=1
$php2000_big5=0; // 默認為簡體
}
$php2000_big5 = ($php2000_big5 1)%2; // 切換簡繁體狀態(tài)
header("location:".getenv("HTTP_REFERER")); // 返回其調(diào)用頁面
?>
2對頁面輸出信息進行控制,每個頁面都調(diào)用這段程序,用于簡繁體轉(zhuǎn)換
require.php(應(yīng)包括前面第二部分的轉(zhuǎn)換代碼,這里略)

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











PHP ??? ??????? ?? ??? ??? ??? ??? ?? ??? ?? ??? ????. ??? ?? ?????. 1. ?? PHP ?? ? ???? ??? ???? ?? ? ?? phpinfo.php ??? ???? ? ? ????. 2. ??? ? ??? ???? ??????. 8.2 ?? 8.1? ???? ?? ????. Linux ???? Package Manager? ???? MacOS ???? Homebrew? ?????. 3. ?? ?? ? ???? ???????? php.ini? ?????? ??? ??? ??????. 4. ? ???? ????? ?? ??? ????? ?? ??? ???? ??? ??? ??? ??????. ?? ??? ??? ???? ???? ?????? ????? ?? ? ? ????.

TopreventCSRFattacksinPHP,implementanti-CSRFtokens.1)Generateandstoresecuretokensusingrandom_bytes()orbin2hex(random_bytes(32)),savethemin$_SESSION,andincludetheminformsashiddeninputs.2)ValidatetokensonsubmissionbystrictlycomparingthePOSTtokenwiththe

PHP ?? ??? ????? ??? ??? ???? ??? ???? ???????. ?? ???? PHP ?? ???? ? ?? ?? ??? ?????. ? ?? (Apache ?? Nginx), PHP ?? ? ?????? (? : MySQL/MariaDB); ???? XAMPP ?? MAMP? ?? ?? ???? ???? ?? ????? ????? ?? ????. XAMPP? Windows ? MacOS? ?????. ?? ? ???? ??? HTDOCS ????? ???? LocalHost? ?? ??????. mAMP? MAC ????? ???? PHP ??? ??? ??? ????? ?? ???? ??? ???? ????. ④ ?? ???? MacOS/Linux ????? Homebrew? ???? ??? ? ????.

? ?? PHP ??? ???? ?? ? ?? ????? ? ?? ?? ??? ????. 1. ??? ??? ?? ?? ??? ?? Array_Merge ? Array_unique ??? ??????. ?? Array_Merge ($ array1, $ array2)? ?? ? ?? Array_Unique ()? ???? ?? ?? ? ?? ???? ? ??? ?????. 2. ?? ?? ? ? ?? ???? ? ? ?? ????? ???? ??????. $ result = $ array1 $ array2? ? ?? ??? ?? ? ?? ??? ?? ?? ?? ??????. ? ? ?? ??? ? ??? ????? ??? ?? ?

EXIT ()? ???? ??? ?? ???? ? ???? PHP? ?????. ???? ???? ??? ?????. 1. ??? ???? ??? ??? ???? ?? ?? ??? ?? ? ? ????? ?? ?????. 2. ??? ? ?? ?? ?? ? ?? ??; 3. ?? ?? ??? ???? ?? Header ()? ?? ???? ? Exit ()? ??????. ?? exit ()? ??? ?? ??? ?? ??? ?? ??? ?? ??? ?? ? ? ??? ??? ?? ()???.

TOSETUPALOCALPHPDEVENCENTENVERMENTERQUICKLY, useXamppforsimplicity.1.downloadandinstallxamppforyouros.2.startapacheandmysqlv IATHEXAMPPCONTROLPANEL.3.PLACEPHPFILESINTHEHTDOCSFOLDERTOACCESSTEMATHTTP : //localHost/Your-Folder-Name.4.formacos, ConsiderMam

HTML?? ??? ??? ????? ???? ??? ?? ???, ??? ? SEO ??? ?? ? ? ????. 1. ??? ????? ??? ?? ??? ? ??? ??? ????? ?? ????????. 2. ????? ??? ???? ?? ?? ???? ???? ???? ?? ??? ?????. 3. ? ???? ??? ?? ??? ????? ??? ? ?? ?? ?? ?? ????? ?? ??? ????. ?? ???? ??? ??????? ?? ??? ??? ??? ???? ???? ??? ??? ?? ??? ???? ???????.

PHP? ?? ???? ?????? ?? ??? ??? ?? $ _session hyperglobal ???? ?? ???????. 1. ??? session_start ()? ???? ??????, ?? ?? ??? ???????. 2. ?? ???? ??? ? ? ?? ????? ??????. ISSET ($ _ session [ 'key']) ?? array_key_exists ( 'key', $ _ session)? ??? ? ????. 3. ?? ??? ????? ????????. ?? ???? $ _session ??? ?? ???????. 4. UNSET ($ _ session [ 'key'])? ?? ???? ??? ?? ???? ??? $ _session? ? ??? ??????.
