欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

以小弟我之代码示例驳斥此等评语,看看什么叫模板引擎。

程序员文章站 2022-05-14 21:42:42
...
以我之代码示例驳斥此等评语,看看什么叫模板引擎。。
【既然知道评价中肯,就应该明白差距在哪里了吧,每次运行都进行替换,相当程度上降低了系统性能,这样的模板引擎还有什么优势??】
【的确是有差距的,我看了一下,按照你说的一年多了,你已经累计有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}

{foot.foot}

{bye}
比较测试 , 让我们在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];   //{array}    系列数组{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("标签解析出错,仅支持一维数组!"),"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标签解析出错!");                }            }        }
以小弟我之代码示例驳斥此等评语,看看什么叫模板引擎。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频