电脑安全

您当前的位置:主页 > 电脑安全 >

php自己写了一个模板-网络编程

来源:[db:来源]标题:   模板    编辑:电脑技术全能网 时间:2019-09-19 12:33

原标题:php自己写了一个模板-网络编程
   /*作者: 牛哄哄Q Q: 455703030*/function template($template,$cacheFile,$set){is_readable($template) || exit('模板文件不存在!');filemtime($template) > @filemtime($cacheFile) && parse_template($template,$cacheFile);$inTemplate = true;is_readable($cacheFile) ? include $cacheFile : exit('无奈读取缓存,缓存门路能够有误!');}function parse_template($template,$cacheFile=''){$content = file_get_contents($template);$content = preg_replace('//{/*([^/{/}]*)/*/}/','',$content);$content = preg_replace('//$([A-Za-z0-9_]+)/','$set[/'//1/']',$content);$content = preg_replace('//$/[([A-Za-z0-9_]+)/]/','$//1',$content);$content = preg_replace('//{/$([A-Za-z0-9_/[/]/'"]+)/}/','<? echo $//1; ?>',$content);$content = preg_replace('//{include/(([^/{/}]+)/)/}/','<? include //1; ?>',$content);$content = preg_replace('//{echofile/(([^/{/}]+)/)/}/','<? echo file_get_contents(//1); ?>',$content);$content = preg_replace('//{code/(([^/{/}]+)/)/}/','<? //1; ?>',$content);$content = preg_replace('//{if/(([^/{/}]+)/)/}/','<? if (//1) { ?>',$content);$content = preg_replace('//{elseif/(([^/{/}]+)/)/}/','<? } elseif(//1) { ?>',$content);$content = preg_replace('//{while/(([^/{/}]+)/)/}/','<? while (//1) { ?>',$content);$content = preg_replace('//{foreach/(([^/{/}]+)/)/}/','<? foreach (//1) { ?>',$content);$content = str_replace(array('{else}','{/if}','{/while}','{/foreach}'),array('<? }else{ ?>','<? } ?>','<? } ?>','<? } ?>'),$content);if (preg_match_all('//{template/(([^/{/}]+)/)/}/',$content,$tplName)){foreach ($tplName[1] as $value) $tplContent[] = parse_template(eval('return '.$value.';'));$content = str_replace($tplName[0],$tplContent,$content);}if ('' == $cacheFile) return $content;@file_put_contents($cacheFile,'<? true===$inTemplate || exit(/'合法拜访!/'); ?>'.$content);}1,修复一个由于忽视形成的小BUG,编译以后的代码少 了一个{标记,呵呵2,变动模板嵌套的编译形式,当初这类形式应用更简略便利,也更合乎各人的习气3,增添了一个新的功效,实在原来供给的功效,也能够完成此功效,然而究竟不业余,用起来不便利。此功效用来间接输入一个动态的文件,我已经做过测试,如许间接输入,效力要比include高的多的多此模板函数供给的标签及功效:1,增加解释{* *}2,输入变量{$i} //须要对变量停止格局化,能够应用{code()}标签来履行一个函数停止格局化输入3,包括一个静态文件{include()}4,包括一个动态文件{echofile()}5,嵌套一个模板{template()}6,推断,分支{if()} {elseif()}{else} {/if}7,轮回{while()} {/while}{foreach()}{/foreach}8,履行一段PHP代码,包含赋值,函数等等等等{code()}有了这些货色,基础上就没有甚么任务实现不了了。内附比拟具体的应用阐明

上一篇:在PHP中使用灵巧的体系结构-网络编程

下一篇:没有了