以前,在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">首 页</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;"> ┃ </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);//输出变量
..
好了,到现在,我已经可以用自定义函数替代模板里的相应内容了。
高手们!说句话啊!

|