分享
 
 
 

PHP中,使用template,如何把自定义函数解析详解

王朝php·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

以前,在CSDN的论坛上,问了上面的这个问题,可是没有人能给出一个正确的答案。非但如此,尽然还有人说俺是PIG,我晕!

让我们来看看这个骂我是PIG的人的回答:

这个问题都问?????????????????????????

function aa(){

echo "pig";

}

aa();

还有一个自以为神秘的人的回答:

实现过,但拒绝回答。

大家看看,这让能让人不生气吗?

也算是争口气吧,现在,我自己把问题给解决了,祥解如下:

自定函数:

------------------------------------

<?php

function menu($color1="",$color2=""){

$domain="http://www.duojiao.com.cn/";

?>

<table border="0" cellpadding="0" style="border-collapse: collapse" width="578" id="table43" height="50">

<tr>

<td width="578" style="text-align: center; vertical-align: middle" bgcolor="<?php echo $color1; ?>"> <font color="#FFFFFF"><span style="letter-spacing: 2px"> <a href="<?php echo $domain; ?>"><font color="white">首&nbsp; 页</font></a></span><span style="letter-spacing: 0px"> ┃ </span><span style="letter-spacing: 2px"><a href="<?php echo $domain; ?>thjs.php"><font color="white">图画江山</font></a></span><span style="letter-spacing: 0px"> ┃ </span><span style="letter-spacing: 2px"><a href="<?php echo $domain; ?>sight.php"><font color="white">行游天下</font></a></span><span style="letter-spacing: 0px"> ┃ </span><span style="letter-spacing: 2px"><font color="white">休闲假日</font></span><span style="letter-spacing: 0px"> ┃ </span><span style="letter-spacing: 2px"><font color="white">出行常识</font></span><span style="letter-spacing: 0px"> ┃ </span><span style="letter-spacing: 2px"><font color="white">视频导游</font></span><span style="letter-spacing: 0px"> ┃ <font color="white">精选线路</font></span></font></td>

</tr>

<tr>

<td width="578" bgcolor="<?php echo $color2; ?>" style="text-align: center; vertical-align: middle; border-width: 1px"> <span style="letter-spacing: 2px; color: #FFFFFF;"> <a href="<?php echo $domain; ?>travel.php"><font color="white">旅行社</font></a></span><span style="letter-spacing: 0px; color: #FFFFFF;"> ┃ </span> <span style="letter-spacing: 2px; color: #FFFFFF;"><a href="<?php echo $domain; ?>grogshop.php"><font color="white">酒店宾馆</font></a></span><span style="letter-spacing: 0px; color: #FFFFFF;"> ┃ </span><span style="letter-spacing: 2px; color: #FFFFFF;"><a href="<?php echo $domain; ?>ticket/"><font color="white">预订票务</font></a></span><span style="letter-spacing: 0px; color: #FFFFFF;"> ┃ </span><span style="letter-spacing: 2px; color: #FFFFFF;"><a href="<?php echo $domain; ?>info/index.htm" target="_blank"></font><font color="white">多娇网络</font></a></span><span style="letter-spacing: 0px; color: #FFFFFF;"> ┃&nbsp; </span><span style="letter-spacing: 2px; color: #FFFFFF;"><a href="http://voip.duojiao.com.cn"><font color=white>I P 业务</font></a></span><span style="letter-spacing: 0px; color: #FFFFFF;"> ┃ <a href="http://shop.duojiao.com.cn"><font color="white">旅游商城</font></a> ┃ <a href="http://bbs.duojiao.com.cn"><font color="white">旅游论坛</font></a></span></td>

</tr>

</table>

<?php

return ob_get_clean();//它的作用是得到函数执行后的内容,但不显示出来!就这样简单,

//看不起我?有本事就把正确公布出来啊!

}

?>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

------------------------------------------

这里,用到一个关键的函数:ob_get_clean

我以前也是很少用到这类有关缓存的函数,但是它确实能我们带来不少好处。ob_get_clean用到这里的目的是为了得到自定义函数执行后得到的HTML代码,并清空缓存区,同时,为了不影响其它代码的正常执行,我们应该注意,在使用类似自定函数的时候,应用flush把缓存区的内容输出一下,在调用这样的自定义函数。

接着看一下:

-------------------------------

<?php

//$time_start=explode(" ",microtime());

include_once("phpfun/gzdoc.php");

require_once("phpfun/template.php");

require_once("phpfun/conn.inc.php");

require("phpfun/newmenu.php");

$query="select * from lydt where num=".$_GET['num'];

$result=mssql_query($query);

$rows=mssql_fetch_array($result);

$time="<div align=right class='font12pt'>发表时间".$rows['timeofthis']."</div>";

$img=$rows['pic'];

if($img='none.jpg') $image="";

else{

$img="image/uploadpic/lydt/".$img;

$size=getimagesize($img);

$image="<img src='".$img."' ".$size[3].">";

}

$menu=menu();

$content="<div class='font12pt'>".$rows['content']."</div>";

$title="<div align=center><font color='' size=4><b>".$rows['title']."</b><font></div>";

$mytemp = new Template("template"); //创建一个模板实例mytemp,如果模板就在当前目录,那么使用"."就可以

$mytemp->set_file("MyFileHandle","list.htm");

$mytemp->set_var("title", $title);

$mytemp->set_var("time",$time);

$mytemp->set_var("image",$image);

$mytemp->set_var("content",$content);

$mytemp->set_var("menu",$menu);

$mytemp->parse("Out","MyFileHandle");

$mytemp->p("Out");

gzdocout();

flush();

?>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<link href="css/1.css" rel="stylesheet" type="text/css">

------------------------------------------------------------------------------------------------------

关键语句如下:

..

$menu=menu();//把自定函数执行的结果存入一个变量,

..

..

$mytemp->set_var("menu",$menu);//输出变量

..

好了,到现在,我已经可以用自定义函数替代模板里的相应内容了。

高手们!说句话啊!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有