1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

一个简单的php程序与模版分离的实现方法~有待指正!

本帖由 xledoo2006-06-04 发布。版面名称:后端开发

  1. xledoo

    xledoo New Member

    注册:
    2005-11-15
    帖子:
    109
    赞:
    0
    自己弄了一个~
    虽然成功了!但很多地方还是不明白~贴上来请教大家!

    index.html
    代码:
    <html>
    <head>
    <title>{title}</title>
    </head>
    <body>
    {main}
    </body>
    </html>
    index.php
    <?php
    代码:
    function template($skin){
            $data=file_get_contents($skin);
            $str = preg_replace('/{([a-zA-Z]+)}/','<?php echo $GLOBALS[\'\\1\']; ?>',"\r\n?>\r\n".$data."\r\n<?php\r\n");
        return eval($str);
    }
    $title='标题';
    $main='内容';
    template('index.html');
    ?>
    用上面的code就可以实现了~不过我怎么也改不了路径!
    上面这个只能index.php和index.html在同一个目录才行!
    如果想把index.html放到其他的目录就出错了!
    下面是出错的code:
    代码:
    function template($file, $temdir){
    		$path = YEDOO_ROOT."./templates/".$temdir."/".$file.".".htm;
    		if (!file_exists($path)) {
    		$path = YEDOO_ROOT."./templates/default/".$file.".".htm;
    		$path = YEDOO_ROOT.'.'.$temdir'.$file.'.'.htm;
    		}
    
            $data =file_get_contents($path);
            $str = preg_replace('/{([a-zA-Z]+)}/','<?php echo $GLOBALS[\'\\1\']; ?>',"\r\n?>\r\n".$data."\r\n<?php\r\n");
    
    //		$str = preg_replace("/\{(\\\$[a-zA-Z0-9_\[\]\'\"\$\.\x7f-\xff]+)\}/s", "<?=\\1?/>", $str);
        return eval($str);
    }
    大家就帮我看看吧~!我已经要崩溃了!
     
  2. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    推荐使用smarttemplate,
    简单,快速,而且缓存控制机制,调用模式跟上面差不多。
     
  3. 可可

    可可 New Member

    注册:
    2006-05-29
    帖子:
    540
    赞:
    2
    楼主,你知道小叶和blue2004是什么关系么?
     
  4. xledoo

    xledoo New Member

    注册:
    2005-11-15
    帖子:
    109
    赞:
    0
    小叶同志~!
    不知道是不是我对smart有误解!~
    我影响中的smart好象没有你说的那么简单!
    不过我也没有研究过~看看先~~
    不懂再来发问!
    立志自学成”菜“,嘿嘿!

    [举报]可可是个专业灌水的吧![/举报]
     
  5. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    我说的不是smarty,而是它的小弟,smarttemplate。
     
  6. 著名混混

    著名混混 New Member

    注册:
    2006-03-22
    帖子:
    292
    赞:
    1
    他的小弟?:confused:
     
  7. xledoo

    xledoo New Member

    注册:
    2005-11-15
    帖子:
    109
    赞:
    0
    smarttemplate!!!好似听过!
    研究!