search
Homephp教程php手册一个简单的模板类--编译型的(simplet类增强后)

一个简单的模板类--编译型的(simplet类增强后)

Jun 13, 2016 am 10:34 AM
bbhttpreleasebackexistEnhancetemplateofSimplekindCompiled

在上次发布的simplet类之后(http://bbs.phpchina.com/thread-85257-1-1.html),发现有很多缺陷,例如不支持多维数组,注释和没有缓存功能,这次我把这些功能都加进去了!!!
大家有兴趣的话,我下次出个教程,来谈谈我写这个类的一些思想和方法!!!支持的话可以跟贴支持我!
PHP代码:
simplet.class.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                 throw new Exception(The file size must > 0 );
            }
            $content = fread($fp, $filesize);
            fclose($fp);
            unset($fp);
           
            $content = preg_replace("//","", $content);
            $content = preg_replace("//", " \$$1_val) { ?>",$content);
            $content = preg_replace("//", "", $content);
            $content = preg_replace("//", " \$$3) { ?>", $content);
            $content = preg_replace("//", "", $content);
            $content = preg_replace("//", "", $content);
            $content = preg_replace("//", "", $content);
            $content = preg_replace("//","", $content);
            $content = preg_replace("/([^]{0,})/", "", $content);
            if (preg_match_all("/)]{1,})}%>/", $content, $files)) {
                $this->comp($this->templates_dir . $files[1][0]);
            }
            $content = preg_replace("/)]{1,})}%>/", "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);
       &

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.