<?php /* * PHPlib模板7.4中文版(不足之处还请各位指正) * (C) Copyright 1999-2000 NetUSE GmbH * Kristian Koehntopp * 彭赞群注释于2004年6月,QQ:9537075 TEL:13787877670 * Email:mylovepzq@163.com */ /*这里是定义类Template*/ class Template { /* 如果设置了,则输出参数 */ var $classname = "Template"; var $debug = false; //是否调试 var $root = ".";//root为模板文件的存放目录 var $file = array(); //包含了所有的模板文件名和模板名的数组 var $varkeys = array(); //存放文本元素的键名 var $varvals = array(); //存放文本元素的值 var $unknowns = "remove"; /* "remove" => 删除未定义的变量 "comment" => 将未定义的变量变成注释 "keep" => 保留未定义的变量 */ var $halt_on_error = "yes"; /* "yes" => 退出 "report" => 报告错误,继续运行* "no" => 忽略错误*/ var $last_error = ""; /* 上一次的错误保存在这里 */ /* public: 构造函数 * root: 模板目录 * unknowns: 如何处理未知的变量(译者:变量定义为{ name }) */ /*这里是定义函数Template*/ function Template($root = ".", $unknowns = "remove") { if ($this->debug & 4) { echo "<p><b>模板:</b> root = $root, unknowns = $unknowns</p>\n"; } $this->set_root($root);//默认将文件目录设置为相同的目录 $this->set_unknowns($unknowns);//unknowns默认设置为"remove" } /*这里是函数set_root*/ function set_root($root) { if ($this->debug & 4) { echo "<p><b>设置根目录:</b> root = $root</p>\n"; } if (!is_dir($root)) { $this->halt("设置根目录: $root 不是一个无效的目录."); return false; } $this->root = $root; return true; } //这里是函数set_unknowns,即对未知变量的处理 function set_unknowns($unknowns = "remove") { if ($this->debug & 4) { echo "<p><b>未知的:</b> 未知 = $unknowns</p>\n"; } $this->unknowns = $unknowns; } /*这里是函数set_file.......................................................*/ //该方法在数组file中根据$varname提供的键名加入值 function set_file($varname, $filename = "") { if (!is_array($varname))//如果varname是数组 { if ($this->debug & 4) { echo "<p><b>设置文件:</b> (with scalar) varname = $varname, filename = $filename</p>\n"; } if ($filename == "")//如果文件名为空,输出错误 { $this->halt("设置文件:变量名 $varname 文件名是空的."); return false; } $this->file[$varname] = $this->filename($filename); } else { reset($varname);//将varname的键名作为file数组的键名 //将键名对应的值作为file数组的值 while(list($v, $f) = each($varname)) { if ($this->debug & 4) { echo "<p><b>set_file:</b> (with array) varname = $v, filename = $f</p>\n"; } if ($f == "") { $this->halt("set_file: For varname $v filename is empty."); return false; } $this->file[$v] = $this->filename($f); } } return true; } //该方法取出某个父模板文件中的一个子模板 //将其作为块来加载 //并用另外一个模板变量取代之 /* public: |