zoukankan      html  css  js  c++  java
  • php代码不支持多维数组,注释和没有缓存功能。

    php代码:
    simplet.class.php
    <?php
    class SimpleT {
    private $t_vars;
    private $templates_dir;
    private $templates_c_dir;
    private $cache;
    private $cache_dir;

    public function __construct() {
    $this->templates_dir = ./templates/;
    $this->templates_c_dir = ./templates_c/;
    $this->cache = 0;
    $this->cache_dir = ./cache/;
    }
    public function setDir($dir, $type = template) {
    if(is_dir($dir)) {
    if($type == template)
    $this->templates_dir = rtrim($dir, /)./;
    elseif($type == template_c)
    $this->templates_c_dir = rtrim($dir, /)./;
    elseif($type == cache)
    $this->cache_dir = rtrim($dir, /)./;
    else
    return false;
    return true;
    } else {
    return false;
    }
    }

    public function cache($time) {
    if(is_numeric($time)) {
    $this->cache = $time;
    return true;
    } else {
    return false;
    }
    }

    public function assign($var, $value = NULL) {
    if (is_array($var)) {
    foreach ($var as $key => $val) {
    $this->t_vars[$key] = $val;
    }
    } else {
    $this->t_vars[$var] = $value;
    }
    }
    private function comp($filename) {
    try {
    if(!$fp = fopen($filename, r)) {
    throw new Exception(Can not open . $filename);
    }
    $filesize = filesize($filename);
    if($filesize <= 0) {
    throw new Exception(The file size must > 0 );
    }
    $content = fread($fp, $filesize);
    fclose($fp);
    unset($fp);

    $content = preg_replace("/<%=([$a-zA-Z0-9_]{1,})%>/","<?php echo $$1 ;?>", $content);
    $content = preg_replace("/<%([$a-zA-Z0-9_]{1,}).loop%>/", "<?php foreach($$1 as $$1_key => $$1_val) { ?>",$content);
    $content = preg_replace("/<%([$a-zA-Z0-9_]{1,}).loop(([$a-zA-Z0-9_]{1,}))%>/", "<?php foreach($$1 as $$2) { ?>", $content);
    $content = preg_replace("/<%([$a-zA-Z0-9_]{1,}).loop(([$a-zA-Z0-9_]{1,}),([$a-zA-Z0-9_2881064151]{1,}))%>/", "<?php foreach($$1 as $$2 => $$3) { ?>", $content);
    $content = preg_replace("/<%([$a-zA-Z0-9_]{1,}).key%>/", "<?php echo $$1_key ;?>", $content);
    $content = preg_replace("/<%([$a-zA-Z0-9_]{1,}).value%>/", "<?php echo $$1_val ;?>", $content);
    $content = preg_replace("/<%([$a-zA-Z0-9_]{1,})?%>/", "<?php if($$1 == true) { ?>", $content);
    $content = preg_replace("/<%end%>/","<?php } ?>", $content);
    $content = preg_replace("/<%##common##%>([^<%##end##%>]{0,})<%##end##%>/", "<?php /* $1 */ ?>", $content);
    if (preg_match_all("/<%{([^(}%>)]{1,})}%>/", $content, $files)) {
    $this->comp($this->templates_dir . $files[1][0]);
    }
    $content = preg_replace("/<%{([^(}%>)]{1,})}%>/", "<?php include {$this->templates_c_dir}simplet_comp_$1.php; ?>", $content);
    echo $content;
    $fp = fopen($this->templates_c_dir . simplet_comp_ . basename($filename) . .php, w);
    if(!fwrite($fp, $content)) {
    throw new Exception(Can not write content in the . $filename);
    &

  • 相关阅读:
    修改代码的艺术阅读笔记-01
    周总结
    代码整洁之道阅读笔记-03
    周总结
    mybatis三种执行器性能比较
    Tomcat长连接是如何实现的
    Zookeeper在Windows下搭建集群教程
    Zookeeper单机模式下RequestProcessor流程与源码理解
    JDK NIO基础概念与原理
    zookeeper客户端访问服务端时,基于NIO的线程池绑定
  • 原文地址:https://www.cnblogs.com/cbryge/p/6074999.html
Copyright © 2011-2022 走看看