知识大全 一个PHP模板,主要想体现一下思路

Posted 文件

篇首语:不知道自己无知,乃是双倍的无知。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 一个PHP模板,主要想体现一下思路相关的知识,希望对你有一定的参考价值。

一个PHP模板,主要想体现一下思路  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

思路: 欲在速度和易用(主要指的是美工设计的方便性)之间取得一个平衡点 于是采用了由文件生成php文件的办法(编译?) 也想在分离显示逻辑和分离代码之间平衡一下 例如一个论坛首页(index php): 代码: <?php require( /template php ); //由生成的php文件的前缀 区别使用多种风格 $tpl_prefix = default ; //模板文件名 $tpl_index = index ; $tpl = new Template($tpl_prefix); $cats = array(     array( forum_id => forum_cat_id => forum_name => PHP学习 )    array( forum_id => forum_cat_id => forum_name => MYSQL学习 ) ); $forums = array(    array( forum_id => forum_cat_id => forum_name => PHP高级教程 )    array( forum_id => forum_cat_id => forum_name => PHP初级教程 )    array( forum_id => forum_cat_id => forum_name => MYSQL相关资料 ) ); if ($cats)    if ($tpl >c_cache($tpl_index))//检查判断是否需要重新生产PHP模板文件            $tpl >load_tpl($tpl_index);//加载模板文件       //替换PHP语句       $tpl >assign_block( block_cat <?foreach(\\$cats as \\$cat) ?> );       $tpl >assign_block( /block_cat <??> );         $tpl >assign_block( block_forum <?foreach(\\$forums as \\$forum) \\nif(\\$forum[ forum_cat_id ] == \\$cat[ forum_id ]) ?> );        $tpl >assign_block( /block_forum <?\\n?> );       //生产PHP模板文件       $tpl >write_cache($tpl_index);     //包含PHP模板文件 include($tpl >parse_tpl($tpl_index)); ?> 对应的模板文件(l): 代码: block_cat <table width= % border= cellspacing= cellpadding= bgcolor= # align= center >   <tr align= =TR_ALING bgcolor= #FFFFFF >     <td  colspan= ><span class= title ><b>=$cat[ forum_name ]</b></span></td>   </tr> block_forum   <tr bgcolor= #FFFFFF >     <td valign= top >=$forum[ forum_name ]</td>   </tr> /block_forum </table> <br> /block_cat 经过处理 里面的block_forumblock_cat标签被替换成PHP循环语句 用于显示数组种所有元素 生成的PHP模板文件(default_index php): 代码: <?foreach($cats as $cat) ?> <table width= % border= cellspacing= cellpadding= bgcolor= # align= center >   <tr align= <?=TR_ALING?> bgcolor= #FFFFFF >     <td  colspan= ><span class= title ><b><?=$cat[ forum_name ]?></b></span></td>   </tr> <?foreach($forums as $forum) if($forum[ forum_cat_id ] == $cat[ forum_id ]) ?>   <tr bgcolor= #FFFFFF >     <td valign= top ><?=$forum[ forum_name ]?></td>   </tr> <? ?> </table> <br> <??> default_index php被包含在index php 这样就可以正常显示了 这样 HTML模板文件可以用dw来进行修改美化 美工人员应该会方便一些 template php 代码: <?php /********************************************************************************* *                                                                 模板类(Template) *    最后修改时间:     本论坛使用    *    * * **********************************************************************************/ class Template    //$this >$template 储存模板数据    var $template = ;    //模板路径    var $tpl_path = ;    //模板前缀(风格名称)    var $tpl_prefix = ;     //cache路径(编译后的路径)    var $cache_path = ;    //css文件路径    var $css_path = ;    //header文件路径    var $header_path = ;    //footer文件路径     var $footer_path = ;    /**    * 初始化模板路径    */    function Template($root = default )           //模板前缀(风格名称)       $this >tpl_prefix = $root;       //模板文件路径       $this >tpl_path = /templates/ $root / ;       //生成的PHP文件存放路径       $this >cache_path = /template_data/ $this >tpl_prefix _ ;       return true;        /**    * c_cache 检查 编译 后的模板是否需要更新 判断依据:最后修改时间 编译 文件是否存在    */    function c_cache($tpl_index)           $tpl_file = $this >tpl_path $tpl_index l ;       $cache_file = $this >cache_path $tpl_index php ;       //判断是否需要更新       if(!file_exists($cache_file))                  return true;                elseif(filemtime($tpl_file) > filemtime($cache_file))                  return true;               /**    * 输出模板文件    */    function parse_tpl($tpl_index $message= )            return $this >cache_path $tpl_index php ;        /**    * 加载模板文件    */    function load_tpl($tpl_index)           $tpl_file = $this >tpl_path $tpl_index l ;       $fp = fopen($tpl_file r );       $this >template = fread($fp filesize($tpl_file));       fclose($fp);        /**    * 替换变量 并且 编译 模板    */    function write_cache($tpl_index)           $cache_file = $this >cache_path $tpl_index php ;       //变量显示       $this >template = preg_replace( /(\\=)( +?)(\\)/is <?=\\\\ ?> $this >template);       //界面语言替换       $this >template = preg_replace( /\\lang +( +?)\\/ies \\$lang[ main ][ \\\\ ] $this >template);         $fp = fopen($cache_file w );         flock($fp );         fwrite($fp $this >template);         fclose($fp);        /**    * 替换block    */    function assign_block($search $replace)           $this >template = str_replace($search $replace $this >template);     ?> cha138/Article/program/PHP/201405/30764

相关参考

知识大全 分享25个顶级PHP模板引擎整理

分享25个顶级PHP模板引擎整理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  为了找到一个好的

知识大全 php Smarty 模板使用方法详解

phpSmarty模板使用方法详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一模板中的注释

知识大全 PHP实现文件上传的思路及实例

PHP实现文件上传的思路及实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  文件上传我们需要用

知识大全 PHP中利用MySQL进行访问统计的思路

PHP中利用MySQL进行访问统计的思路  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  看了网上

知识大全 一个简单的mysql数据库分页的程序模板

  下面是一个简单的php连接mysql数据库进行数据分页显示的模版可以按注释说明信息进行修改里面的sql语句是可以自己改的    注意分析和观察里面相关分页部分的代码的书写和实现的方式    <

知识大全 将.aspx转换为.htm的两种方法

这篇文章介绍了将aspx转换为的两种方法有需要的朋友可以参考一下希望对你有所帮助   方法一:根据模板生成保持在文件夹中思路分析:写一个自定义的HTM模板 其中需要替换的地方用$v

知识大全 模板引擎正则表达式调试小技巧

  很久没有遇上PHP难题了这次正则问题占了一点时间还是老问题最大回溯递归限制问题学习透之后其实并不难修改调试有这类问题的正则主要是以下几点  基于正则表达式替换的模板引擎很容易遇上正则表达式最大回溯

知识大全 想自己创业但没有思路,求大家给点意见,做什么比较好

想自己创业但没有思路,求大家给点意见,做什么比较好!关于创业这件事,具体做什么好这个别人还真的没法说,真就只能探讨一下思路了。首先应该明确一点,你是否适合创业。创业不是上班,创业是没有固定保障的,而且

知识大全 微博短链接算法PHP版本

微博短链接算法PHP版本  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    思路  )将长网址m

知识大全 怎样才能整理出自己的面试答题思路

怎样才能整理出自己的面试答题思路首先,无论面试官问的这个问题是否你知道,答题时,,都要稍微停顿一下,代表你在思考这个问题;其次,要有逻辑性和条理性,不妨将问题分成几个方面来回答,体现全面的考虑及层次性