人总是有疲倦的时候,如果疲倦的时候不好好休息,那么就会产生无聊的浪费。下午已经有点头晕脑胀的,但是想一鼓作气解决调HTML静态模板。 www.shengfang.org
结果有一段代码改来改去就是不行,总是出现一段无聊的替换符号。{briefas} www.shengfang.org
我看了看以前的代码,好像不会。我主要替换了模板类。但是根据我的经验觉得应该差不多。并且前面一些代码也验证了我的看法。我已经作好了页面内容,而子类静态HTML也完成了列表、头条等内容。但是有一段我一直有点模糊,不明白是什么类型的,但是也是强行作下去。 www.shengfang.org
<!-- BEGIN briefa -->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#FDEEEE">{ _img }{ _brief }</td>
</tr>
<tr>
<td bgcolor="#FDEEEE">
<hr size="1" width="98%" color="#FFE9BB">
</td>
</tr>
</table>
<!-- END briefa --> HTML模板
$itpl->set_block("_sort","briefa","briefas"); www.shengfang.org
//parse brief
global ${ topic.$sortid };
if(${ topic.$sortid }!=""){
$itpl->set_var("_brief","$brief");
$itpl->set_var("_img","<img src=\"../../$img\">");
$itpl->parse("briefas","briefa");
} PHP处理
我改为: www.shengfang.org
$tmpl->set_block("_sort","briefa","briefas");
$intronums=$db->GetParam("intronum");
$sql="SELECT * FROM `htmls` WHERE topic=1 and cata='".$cata."' and sort='".$sort."'" ;//." limit 0, ".$intronums;
$dbrtn=$db->Exec($sql);
if($row = mysql_fetch_array($dbrtn))
{
global ${ topic.$sortid };
if(${ topic.$sortid }!="")
{
$tmpl->set_var("_brief","$brief");
$tmpl->set_var("_img","<img src=\"../../$img\">");
$tmpl->parse("briefas","briefa");
}
}
else
{
$tmpl->set_var("_brief","");
$tmpl->set_var("_img","");
$tmpl->parse("briefas","briefa");
} 结果就是明明虽然不会走进去替换,但是替换为空白很难看,如果不替换,那么又有那个。{briefas}
但是:var $unknowns = "remove"; 指示未知变量的处理方式
为"keep","comment", "remove" (默认)三者之一.决定了在输出环节上如何处理模板中未完成处理的变量名称.如果设为"keep",这些变量名称将原封不动的保留下来.如果设为"comment",那么会在报错的同时,将未完成处理的变量名
称全部转换成HTML的注释.如果设为"remove",未完成处理的变量名称便会被悄然删除(这也是默认的情况).
我默认就是 REMOVE,实在让我很郁闷。最后我晚上终于找到原因了:
$itpl->savetofile("../$cateid/$sortid/index.html","_sorts"); 他调用的是自己的保存方法。我随便看了一下,改写为
$itpl->writetofile("./$cataid/$sortid/index.html",$data,"w+"); 就是把数据写入文本文件
再看看原来的代码: www.shengfang.org
function savetofile ($dir,$varname){
$data=$this->finish($this->get_var($varname));
$this->writetofile($dir,$data,"w+");
}
晕倒,还有一个finish www.shengfang.org
function finish($str) {
switch ($this->unknowns) {
case "keep":
break;
case "remove":
$str = preg_replace('/{ [^ \t\r\n }]+ }/', "", $str);
break;
case "comment":
$str = preg_replace('/{ ([^ \t\r\n }]+) }/', "<!-- Template $handle: Variable \\1 undefined -->", $str);
break;
}
return $str;
} 吐血,原来在这里进行了处理!
我也改了:www.shengfang.org
$data=$tmpl->finish($data);
$itpl->writetofile("./$cataid/$sortid/index.html",$data,"w+");
不过他还 $data=$this->finish($this->get_var($varname));
function get_var($varname) {
if (!is_array($varname)) {
return $this->varvals[$varname];
}
else {
reset($varname);
while(list($k, $v) = each($varname)) {
$result[$k] = $this->varvals[$k];
}
return $result;
}
} 我就偷懒算了 , www.shengfang.org
家里的PHPMYADMIN总是莫名其妙的出现问题,例如访问之后,打开一个数据库,突然不停的在刷新;或者干脆就访问不了,显示几行之后就 出现HTML符号 <a 之类的,或者干脆:您要查看的页当前不可用。网站可能遇到技术问题,或者您需要调整浏览器设置。不知道怎么回事。