澳门新浦京娱乐游戏PHP输出控制功能在简繁体转换中的应用

PHP输出调节作而成效在简繁体转变中的应用概要:本文对PHP的出口调控功用拓宽了简便介绍并对其在简繁体转变中的应用给出了切实可行思路和实例
一 PHP 输出调控功用介绍
PHP作为明天风行的脚本语言之一,具备编写简便,实施进程快,扩大性好等优点。PHP的出口音信调整函数可以让您决定你的剧本输出的剧情,能够用来大多不一致的景况,非常是在你的脚本已经出口音讯后要求发送文书头的场馆以至必要对出口消息进行编辑管理的地点。输出调控函数不对运用
header(卡塔尔国 或 setcookie(State of Qatar 发送的文本头音讯爆发听得多了自然能详细说出来,只对那三个看似于
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 php2002但通过点名了出口调整函数后,输出变为 hello y10k 在上头的例子中,使用
echo(卡塔尔 的输出内容将会保留在出口缓冲区中,直到调用了
ob_end_flush(State of Qatar可能脚本运营终止,
然后输出音信由自定义的管理函数进行管理并重回结果。 相关函数表达ob_start- 展开输出缓冲区
全体的输出消息不在直接发送到浏览器,而是保存在出口缓冲区里面,可选得回调函数用于拍卖输出结果音讯。
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 建立简繁体标识,用于提示当前来得的简繁体状态,同期对简繁体状态举办切换
php二零零一_gb_big5.php ? session_start(State of Qatar; // 展开session
成效,用于在挨门挨户页面之间自动传递标识if(!session_is_registered(“php2000_big5″卡塔尔(قطر‎卡塔尔国{ //
检查简繁体标识的登记情形 session_register(“php2000_big5″卡塔尔国; //
注册简繁体标识,简体=0;繁体=1 $php2001_big5=0; // 默以为简体 }
$php2003_big5 = ($php2000_big5+1卡塔尔%2; // 切换简繁体状态
header(“location:”.getenv(“HTTP_REFERE传祺”State of Qatar卡塔尔(قطر‎; // 再次来到其调用页面 ?
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==1State of Qatar卡塔尔{ //
剖断标记 $fp = fopen(‘big5.table’, ‘r’卡塔尔; // big5的字库表 $_gb_big5_ =
fread($fp, filesize(‘big5.table’卡塔尔State of Qatar; // 读出多少 fclose($fp卡塔尔国;
ob_start(‘translate_gb2big5’卡塔尔(قطر‎; // 运维输出音讯调整 } ? 3
使用情势,这里给出叁个最简便易行的事例,放在和 require.php 同叁个索引里面
test.php ? require(“require.php”卡塔尔(قطر‎; echo “大家好,这里是 PHP 世纪网”; ? a
href=php2001_gb_big5.php ? if($php2000_big5==1State of Qatarecho “GB”; else echo
“Big5”; ? /a 第叁回运营结果为暗中同意简体如下 大家好,这里是 PHP 世纪网 Big5
点击 Big5 连接展现繁体如下 大家好,里是 PHP 世 GB 点击 GB 将重临简体页面
由于使用了session 保存了简繁体标识,这样任何任何利用了 require.php
的页面都会自行依据如今的表显然示相应的页面。更加多的实例请看本人的网址 。 4
big5 字库的保留的校勘格局 曾经思虑动用 session 来保存 big5
字库,但运用后开采速度分明减速,首要因为 session
也是通过文件方式落到实处,所以不会对品质产生进步,何况因为session
不会依靠简繁体标识自动推断装载与否,所以产生在简体下也装载了 big5
的字库,所以招致速度减慢。 由于本人用的服务器为 linux
所以思忖选择分享内部存款和储蓄器来保存 big5 字库音讯。其转移的代码为require.php
的判别部分: ? if(session_is_registered(“php2000_big5”) &&
($php2000_big5==1卡塔尔State of Qatar { // 更改成选择分享内部存款和储蓄器 //
判别是不是早就创建,打开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 的恋人能从中得到启示,做出越来越好的文章。

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图