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