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);
    &

  • 相关阅读:
    [数据知识]DAMA数据管理—引论
    How to clear/delete all the partition table from a disk or partition in Linux
    Rust Safe Coding Notes
    量化交易平台
    斯坦福大学——人工智能本科4年课程清单
    去中心化数字身份DID简介——五、DID的应用
    linux c 打印时间最简单的实例
    sqlalchemy中Column的默认值属性
    Ubuntu安装jdk8的两种方式
    面试官:手撕十大排序算法,你会几种?(转)
  • 原文地址:https://www.cnblogs.com/cbryge/p/6074999.html
Copyright © 2011-2022 走看看