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

  • 相关阅读:
    2019.08.26 学习整理
    day28
    python-day25(正式学习)
    自闭的一天
    python-day18(正式学习)
    python-day17(正式学习)
    python-day16(正式学习)
    别点进来!!!
    python-day15(正式学习)
    python-day14(正式学习)
  • 原文地址:https://www.cnblogs.com/cbryge/p/6074999.html
Copyright © 2011-2022 走看看