成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

PHP輸出控制功能在簡繁體轉換中的應用

瀏覽:130日期:2023-12-22 15:47:05
概要:本文對PHP的輸出控制功能進行了簡單介紹并對其在簡繁體轉化中的應用給出了具體思路和實例一 PHP 輸出控制功能介紹PHP作為當今流行的腳本語言之一,具有編寫簡便,執行速度快,擴充性好等優點。PHP的輸出信息控制函數可以讓你控制你的腳本輸出的內容,可以用于許多不同的情況,特別是在你的腳本已經輸出信息后需要發送文件頭的情況以及需要對輸出信息進行編輯處理的地方。輸出控制函數不對使用 header() 或 setcookie() 發送的文件頭信息產生影響,只對那些類似于 echo()、print() 和 PHP 代碼的數據塊有作用。 例 1. 控制輸出 test.php<?function test($str){return str_replace("php2000","y10k",$str);}ob_start("test");echo "hello php2000";ob_end_flush();?> 這個程序在沒有輸出信息控制的情況下應該輸出為hello php2000但通過指定了輸出控制函數后,輸出變為hello y10k在上面的例子中,使用 echo() 的輸出內容將會保存在輸出緩沖區中,直到調用了 ob_end_flush()或者腳本運行終止, 然后輸出信息由自定義的處理函數進行處理(替換里面的字符串)并返回結果。相關函數說明 ob_start([string output_callback])- 打開輸出緩沖區 所有的輸出信息不在直接發送到瀏覽器,而是保存在輸出緩沖區里面,可選得回調函數用于處理輸出結果信息。 ob_end_flush - 結束(發送)輸出緩沖區的內容,關閉輸出緩沖區 二 簡繁體轉換的實現一般通過對照表的形式實現,相關的文章非常多,這里就不多講了,只給出其實現代碼<?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 的字庫對照表$str 為要轉化的字符串三 輸出控制函數在簡繁體轉化中的應用目前的大多數網站的簡繁體頁面轉換都是通過各自單獨的頁面實現的,這樣導致在修改簡體頁面的時候還需要再次修改繁體的頁面,不能做到自動同步。而我們提供的這個方法,可以實現同一個頁面自動的變換簡繁體顯示。其實現方法是:1 建立簡繁體標志,用于指示當前顯示的簡繁體狀態,同時對簡繁體狀態進行切換php2000_gb_big5.php<?session_start(); // 打開session 功能,用于在各個頁面之間自動傳遞標志if(!session_is_registered("php2000_big5")){ // 檢查簡繁體標志的注冊狀態session_register("php2000_big5"); // 注冊簡繁體標志,簡體=0;繁體=1$php2000_big5=0; // 默認為簡體}$php2000_big5 = ($php2000_big5+1)%2; // 切換簡繁體狀態header("location:".getenv("HTTP_REFERER")); // 返回其調用頁面?>2對頁面輸出信息進行控制,每個頁面都調用這段程序,用于簡繁體轉換require.php(應包括前面第二部分的轉換代碼,這里略)<?Session_start();function translate_gb2big5($str) {$str = gb2big5($str); // 轉化為 big5$str = str_replace('charset=gb2312', 'charset=big5', $str); // 替換字符類型header('Content-Type: text/html; charset=big5'); // 繁體文件頭return $str; }if(session_is_registered("php2000_big5") && ($php2000_big5==1)){ // 判斷標志$fp = fopen('big5.table', 'r'); // big5的字庫表$_gb_big5_ = fread($fp, filesize('big5.table')); // 讀出數據fclose($fp);ob_start('translate_gb2big5'); // 啟動輸出信息控制}?>3 使用方法,這里給出一個最簡單的例子,放在和 require.php 同一個目錄里面test.php<?require("require.php");echo "大家好,這里是 PHP 世紀網";?> <a href=php2000_gb_big5.php><?if($php2000_big5==1)echo "GB";else echo "Big5";?></a>第一次運行結果為默認簡體如下大家好,這里是 PHP 世紀網 Big5點擊 Big5 連接顯示繁體如下大家好,這里是 PHP 世紀網 GB點擊 GB 將返回簡體頁面由于使用了session 保存了簡繁體標志,這樣其他任何使用了 require.php 的頁面都會自動按照當前的標志顯示相應的頁面。更多的實例請看我的網站 http://www.php2000.com。4 big5 字庫的保存的改進方法曾經考慮使用 session 來保存 big5 字庫,但使用后發現速度明顯減慢,主要因為 session 也是通過文件形式實現,所以不會對性能產生提高,而且因為session 不會根據簡繁體標志自動判斷裝載與否,所以造成在簡體下也裝載了 big5 的字庫,所以造成速度減慢。由于我用的服務器為 linux 所以考慮使用共享內存(Windows 不支持共享內存)來保存 big5 字庫信息。其更改的代碼為require.php 的判斷部分:<?if(session_is_registered("php2000_big5") && ($php2000_big5==1)){// 修改成使用共享內存// 判斷是否已經創建,打開50000字節的 0xff3 段的共享內存$shm_id = @shmop_open(0xff3, "a", 0644, 50000);if($shm_id) {$_gb_big5_ = shmop_read($shm_id, 0,shmop_size($shm_id)); // 讀出big5 數據}else{// 創建 50000 字節的系統標識為 0xff3 的共享內存塊$shm_id = @shmop_open(0xff3, "c", 0644, 50000);// 讀出數據$fp = fopen('big5.table', 'r');$_gb_big5_ = fread($fp, filesize('big5.table'));fclose($fp);if($shm_id){$shm_bytes_written = shmop_write($shm_id, $_gb_big5_,0); // 寫入 big5 數據}} ob_start('translate_gb2big5');}?>關于共享內存的使用方法,請參看有關資料。四 結論PHP 作為一種公開源代碼的腳本語言,其擴充性是非常好的。本文只是對其一個功能的一種應用方式的探討,并實現了比較完美的同一頁面自動簡繁體轉換功能。希望廣大愛好 PHP 的朋友能從中得到啟發,做出更好的作品。;
標簽: PHP
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
高清不卡在线观看| 精品一区二区三区在线观看| 五月开心婷婷久久| 亚洲福利av| 日韩一级在线观看| 久久国产尿小便嘘嘘尿| 久久久精品五月天| 夜夜揉揉日日人人青青一国产精品| 午夜精品剧场| 国产丝袜欧美中文另类| 不卡一区二区中文字幕| 日韩欧美色综合网站| 久久国产生活片100| 久久五月激情| 午夜成人在线视频| 欧美一级久久| 亚洲成a天堂v人片| 国产一区91| 亚洲图片激情小说| 欧美午夜不卡| 中文在线资源观看网站视频免费不卡 | 欧美中文字幕一二三区视频| 视频一区二区三区中文字幕| 久久婷婷麻豆| 蜜桃视频在线一区| 欧美色图在线观看| 久久99国产精品久久99| 欧美在线不卡一区| 捆绑紧缚一区二区三区视频| 欧美亚洲国产一区二区三区va| 亚洲va韩国va欧美va| 国产区二精品视| 亚洲二区在线视频| 快she精品国产999| 久久国产福利国产秒拍| 欧美久久久久久久久久| 国产福利一区在线| 精品久久人人做人人爽| 99re热这里只有精品视频| 国产欧美一区二区精品性色超碰| 欧美网站在线| 亚洲影视在线播放| 在线免费不卡视频| 国产精品一线二线三线精华| 精品国精品国产| 91日韩在线专区| 中文字幕在线观看一区| 亚洲一区二区三区精品在线观看 | 亚洲美女电影在线| 米奇777在线欧美播放| 美国毛片一区二区| 欧美一级高清片在线观看| 99精品视频免费在线观看| 国产精品拍天天在线| 999亚洲国产精| 亚洲一区二区三区四区在线观看 | 亚洲一区在线视频| 在线观看日韩一区| 国产91精品久久久久久久网曝门| 国产亚洲制服色| 日韩天天综合| 日本不卡123| 欧美成人bangbros| 亚洲欧洲综合| 日韩av中文字幕一区二区三区| 欧美精品粉嫩高潮一区二区| av激情综合网| 亚洲女女做受ⅹxx高潮| 色诱视频网站一区| 粗大黑人巨茎大战欧美成人| 亚洲欧洲另类国产综合| 色8久久精品久久久久久蜜| 成人黄色在线视频| 亚洲色大成网站www久久九九| 久久综合久久久| 成人av网站免费| 一区二区三区在线播放| 欧美日韩视频在线观看一区二区三区| 成人福利在线看| 一区二区三区免费网站| 欧美亚洲综合一区| 欧美.www| 天堂午夜影视日韩欧美一区二区| 欧美一区二区精品| 亚洲高清毛片| 久久不见久久见免费视频1| 国产三级精品三级| 麻豆av一区二区三区| 国产精品主播直播| 亚洲欧美激情插| 欧美精品丝袜久久久中文字幕| 欧美天堂亚洲电影院在线观看| 老司机精品视频线观看86| 国产精品美女久久久久久2018| 久久亚洲综合网| 97se亚洲国产综合自在线观| 亚洲国产中文字幕| 欧美一区二区三区免费在线看 | 欧美日韩午夜在线视频| 好吊一区二区三区| 国产最新精品精品你懂的| 亚洲欧洲一区二区在线播放| 67194成人在线观看| 日韩午夜黄色| 高清beeg欧美| 亚洲成人三级小说| 久久这里只有精品视频网| 久久精品系列| 欧美黄免费看| 国内精品久久久久影院薰衣草| 综合久久国产九一剧情麻豆| 欧美久久婷婷综合色| 国产亚洲欧美另类一区二区三区| 成人不卡免费av| 三级久久三级久久久| 欧美国产精品v| 欧美二区三区的天堂| 99热免费精品| 99久久99久久综合| 蓝色福利精品导航| 亚洲精品国产精华液| 日韩精品一区二区三区在线| 一本色道久久综合亚洲精品按摩| 国色天香一区二区| 成人sese在线| 久久不见久久见中文字幕免费| 伊人婷婷欧美激情| 国产丝袜美腿一区二区三区| 欧美一区二区在线视频| 色一情一乱一乱一91av| 国内精品久久久久久久果冻传媒| 国产精品99久久久久久有的能看| 午夜精品在线看| 国产精品久久久久久久久图文区 | 亚洲专区在线| 国精品一区二区三区| 成人在线视频一区| 日产欧产美韩系列久久99| 日韩毛片在线免费观看| 久久久久国产精品厨房| 欧美日韩免费一区二区三区| 久久蜜桃精品| 国产偷自视频区视频一区二区| 91麻豆蜜桃一区二区三区| 国产成人在线看| 亚洲久久一区二区| 欧美色123| 91麻豆123| bt7086福利一区国产| 国产一区二区看久久| 美国毛片一区二区三区| 日韩专区在线视频| 亚洲国产aⅴ天堂久久| 一色屋精品亚洲香蕉网站| 国产日产欧产精品推荐色| 久久网这里都是精品| 日韩欧美一区中文| 欧美精品成人一区二区三区四区| 色综合久久久久| 国产毛片久久| 国产一区导航| 国产亚洲在线观看| 一区二区三区导航| 激情久久久久久| 欧美久久久久久久| 欧美在线视频一区二区三区| 成人精品免费网站| 国产成人精品三级| 国产美女娇喘av呻吟久久| 狠狠久久亚洲欧美| 国内外成人在线| 国内外成人在线视频| 精品中文av资源站在线观看| 青青草97国产精品免费观看| 日韩高清一级片| 男人操女人的视频在线观看欧美| 日日骚欧美日韩| 无码av中文一区二区三区桃花岛| 亚洲一区国产视频| 亚洲无人区一区| 亚洲va国产va欧美va观看| 午夜精品久久久久久久99水蜜桃| 亚洲第一av色| 亚洲成人777| 日韩一区精品字幕| 三级久久三级久久| 奇米综合一区二区三区精品视频| 午夜激情久久久| 日韩av中文字幕一区二区三区| 免费成人小视频| 美日韩黄色大片| 精品一区中文字幕| 国产精品自拍一区| 成人av免费在线观看| 91在线视频18| 国语精品中文字幕| 亚洲一区二区精品在线| 色94色欧美sute亚洲线路一ni | 一区二区三区鲁丝不卡| 亚洲动漫第一页|