phplib类中文详解
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-05-22
if (isset($this->varvals[$varname])) //如果变量不存在 { $str = $this->varvals[$varname]; } else { $str = ""; } if ($this->debug & 2) { printf ("<b>get_var</b> (with scalar) <b>%s</b> = ''%s''<br>\n", $varname, htmlentities($str)); } return $str; } else { reset($varname); while(list($k, $v) = each($varname)) { if (isset($this->varvals[$v])) { $str = $this->varvals[$v]; } else { $str = ""; } if ($this->debug & 2) { printf ("<b>get_var:</b> (with array) <b>%s</b> = ''%s''<br>\n", $v, htmlentities($str)); } $result[$v] = $str; } return $result; } } //如果加载文件失败,返回错误并停止 function get_undefined($varname) { if ($this->debug & 4) { echo "<p><b>get_undefined:</b> varname = $varname</p>\n"; } if (!$this->loadfile($varname)) { $this->halt("get_undefined: unable to load $varname."); return false; } preg_match_all("/{ ([^ \t\r\n }]+) }/", $this->get_var($varname), $m); $m = $m[1]; //如果无法找到匹配的文本,返回错误 if (!is_array($m)) { return false; } //如果能找到大括号中的非空字符,则将其值作为键值,组成一个新的数组 reset($m); while(list($k, $v) = each($m)) { if (!isset($this->varkeys[$v])) { if ($this->debug & 4) { echo "<p><b>get_undefined:</b> undefined: $v</p>\n"; } $result[$v] = $v; } } //如是该数组不为空就返回该数组,否则就返回错误 if (count($result)) { return $result; } else { return false; } } //完成对str的最后的处理工作,利用类的属性unknowns来确定对模板中无法处理的动态部分的处理方法 function finish($str) { switch ($this->unknowns) { case "keep": //保持不变 break; case "remove": //删除所有的非控制符 $str = preg_replace(''/{ [^ \t\r\n }]+ }/'', "", $str); break; case "comment"://将大括号中的HTML注释 $str = preg_replace(''/{ ([^ \t\r\n }]+) }/'', "<!-- Template variable \\1 undefined -->", $str); break; } return $str; } //将参数变量对诮的数组中的值处理后输出 function p($varname) { print $this->finish($this->get_var($varname)); } //将参数变量对应的数组中的值处理后返回 function get($varname) { return $this->finish($this->get_var($varname)); } //检查并补充给定的文件名 function filename($filename) { if ($this->debug & 4) { echo "<p><b>filename:</b> filename = $filename</p>\n"; } if (substr($filename, 0, 1) != "/") //如果文件名不是以斜杠开头,则表示是相对路径,将其补充为完整的绝对路径 { $filename = $this->root."/".$filename; } //如果文件不存在 if (!file_exists($filename)) { $this->halt("filename: file $filename does not exist."); } return $filename;//返回文件名 } //对变量名进行处理,将正则表达式中的敏感字符变为转义字符,并在变量名两端加上大括号 function varname($varname) { return preg_quote("{ ".$varname." }"); } //该方法根据varname加载文件到键一值对中 function loadfile($varname) { if ($this->debug & 4) { echo "&l |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: PHP中的XML拉模式解析下一篇: PHP的数据库增删改查源代码(2)
关于phplib类中文详解的所有评论