以小弟我之代码示例驳斥此等评语,看看什么叫模板引擎。
程序员文章站
2022-05-14 21:42:42
...
以我之代码示例驳斥此等评语,看看什么叫模板引擎。。
【既然知道评价中肯,就应该明白差距在哪里了吧,每次运行都进行替换,相当程度上降低了系统性能,这样的模板引擎还有什么优势??】
【的确是有差距的,我看了一下,按照你说的一年多了,你已经累计有5次下载,和1毛钱的运营盈利。跟他这个只是会发个帖子,贴些代码,又没人下载,又没盈利的情况,差距实在太大了。】
------解决方案--------------------
你晒的不是模板引擎啊
------解决方案--------------------
那么你的模板引擎做了什么呢
【既然知道评价中肯,就应该明白差距在哪里了吧,每次运行都进行替换,相当程度上降低了系统性能,这样的模板引擎还有什么优势??】
【的确是有差距的,我看了一下,按照你说的一年多了,你已经累计有5次下载,和1毛钱的运营盈利。跟他这个只是会发个帖子,贴些代码,又没人下载,又没盈利的情况,差距实在太大了。】
- PHP code
assign("csdn","csdner,大家中午好") ->assign("head",array("来自","xxx")) ->assign("greet",array("PHP技术
","基础编程","开放资源","framework")) ->assign("foot",array( array("id"=>'1',"foot"=>"这是底部测试1"), array("id"=>'2',"foot"=>"这是底部测试2"), array("id"=>'3',"foot"=>"这是底部测试3") )) ->assign("bye","88,good bye"); $this->display("index.html"); }}?>
- HTML code
welcome YouYaX
{csdn} {head} ———— 发表在【{greet->1}】{greet}
{bye}
{foot.foot}
比较测试 , 让我们在html中使用PHP吧 , 模板变量上要写上双引号
看吧 , 果然正确吧, 测试结束,测试者:{head->1}"; }else{ echo "错了"; } ?>
------解决方案--------------------
你晒的不是模板引擎啊
------解决方案--------------------
那么你的模板引擎做了什么呢
- PHP code
//——普通替换 //单个输出数组值 // var_dump($this->array_array);exit; $return=preg_match_all('/\{[^{]*->[^{}]*}/',$txt,$single); if($return){ foreach($single[0] as $v){ $x=strlen($v); $y=$x-2; $z=substr($v,1,$y); //title->0 $z1 = preg_split('/->/', $z, -1, PREG_SPLIT_NO_EMPTY); $txt=str_replace($v,$this->array_array[$z1[0]][$z1[1]],$txt); } } //数组替换 $return=preg_match_all("/\s*(.+?)\s*/s",$txt,$match); if($return){ try{ foreach($match[1] as $lv){ if(eregi("",$lv)){ throw new Exception(htmlspecialchars("标签不能嵌套 !"),"304"); break; } } }catch(Exception $e){ $this->exception($e); } $result0=$match[0]; // 系列数组 {array} {array2} $result1=$match[1]; //系列数组{array2} //var_dump($result1);exit; foreach($result1 as $r1){ preg_match_all("/\{(.*)\}/",$r1,$match2); $result2=$match2[0][0];//{array} $result3=$match2[1][0];//array $result4=$this->array_array[$result3];//得到的数组 try{ if(!is_array($result4)) throw new Exception(htmlspecialchars(" {array} 标签解析出错,仅支持一维数组!"),"306"); /* if(empty($result4)) throw new Exception(htmlspecialchars(" 解析一维数组值为空!"),"308"); */ }catch(Exception $e){ $this->exception($e); } $result5=''; // unset($result5); //result5 清零 foreach($result4 as $v){ $result5.=str_replace("{".$result3."}",$v,$r1); } foreach($result0 as $r0){ if(ereg($result2,$r0)) $txt=str_replace($r0,$result5,$txt); } } } //--数组替换 //include替换 $return=preg_match_all("//",$txt,$inc); if($return){ $inc1=$inc[0];// 系列数组 $inc2=$inc[1];//top.html 系列数组 foreach($inc2 as $v){ if(file_exists($v)){ $sub=file_get_contents($v); foreach($inc1 as $v1){ //区分大小写匹配 if(ereg($v,$v1)){ $txt=str_replace($v1,$sub,$txt); } } }else{ exit("include标签解析出错!"); } } } 相关文章
相关视频
上一篇: java中如何让线程顺序执行
下一篇: 让你的PHP引擎全速运转_PHP教程