⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tpl.inc.php

📁 MyDNSConfig-1.1.0 基于LINUX内核系统的DNS解析系统
💻 PHP
📖 第 1 页 / 共 4 页
字号:
<?php/* vim: set expandtab tabstop=4 shiftwidth=4: */// +----------------------------------------------------------------------+// | PHP version 4.0                                                      |// +----------------------------------------------------------------------+// | Copyright (c) 2002 Active Fish Group                                 |// +----------------------------------------------------------------------+// | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk>                     |// +----------------------------------------------------------------------+//// $Id: class.tpl.inc.php,v 1.1 2003/07/08 12:31:10 platinum Exp $// check to avoid multiple including of classif (!defined('vlibTemplateClassLoaded')) {    define('vlibTemplateClassLoaded', 1);   	include_once ($conf['classpath'].'/tpl_error.inc.php');   	include_once ($conf['classpath'].'/tpl_ini.inc.php');    /**     * vlibTemplate is a class used to seperate PHP and HTML.     * For instructions on how to use vlibTemplate, see the     * vlibTemplate.html file, located in the 'docs' directory.     *     * @since 07/03/2002     * @author Kelvin Jones <kelvin@kelvinjones.co.uk>     * @package vLIB     * @access public     * @see vlibTemplate.html     */    class tpl {    /*-----------------------------------------------------------------------------\    |                                 ATTENTION                                    |    |  Do not touch the following variables. vlibTemplate will not work otherwise. |    \-----------------------------------------------------------------------------*/        var $OPTIONS = array(                        'MAX_INCLUDES'          =>   10,                        'TEMPLATE_DIR'          => null,                        'GLOBAL_VARS'           => null,                        'GLOBAL_CONTEXT_VARS'   => null,                        'LOOP_CONTEXT_VARS'     => null,                        'SET_LOOP_VAR'          => null,                        'DEFAULT_ESCAPE'        => null,                        'STRICT'                => null,                        'CASELESS'              => null,                        'UNKNOWNS'              => null,                        'TIME_PARSE'            => null,                        'ENABLE_PHPINCLUDE'     => null,                        'INCLUDE_PATHS'         => array(),                        'CACHE_DIRECTORY'       => null,                        'CACHE_LIFETIME'        => null,                        'CACHE_EXTENSION'       => null                             );        /** open and close tags used for escaping */        var $ESCAPE_TAGS = array(                            'html' => array('open' => 'htmlspecialchars('                                            ,'close'=> ', ENT_QUOTES)'),                            'url' => array('open' => 'urlencode('                                            ,'close'=> ')'),                            'rawurl'=>array('open' => 'rawurlencode('                                            ,'close'=> ')'),                            'sq' => array('open' => 'addcslashes('                                            ,'close'=> ", \"'\")"),                            'dq' => array('open' => 'addcslashes('                                            ,'close'=> ", '\"')"),                            '1' => array('open' => 'htmlspecialchars('                                            ,'close'=> ', ENT_QUOTES)'),                            '0' => array('open' => ''                                            ,'close'=> ''),                            'none' => array('open' => ''                                            ,'close'=> ''),                            'hex'        => array('open' => '$this->_escape_hex(',                                            'close'=> ', false)'),                            'hexentity'  => array('open' => '$this->_escape_hex(',                                            'close'=> ', true)')                                );        /** open and close tags used for formatting */        var $FORMAT_TAGS = array(                            'strtoupper' => array('open' => 'strtoupper(',                                            'close'=> ')'),                            'uc'         => array('open' => 'strtoupper(',                                            'close'=> ')'),                            'strtolower' => array('open' => 'strtolower(',                                            'close'=> ')'),                            'lc'         => array('open' => 'strtolower(',                                            'close'=> ')'),                            'ucfirst'    => array('open' => 'ucfirst(',                                            'close'=> ')'),                            'lcucfirst'  => array('open' => 'ucfirst(strtolower(',                                            'close'=> '))'),                            'ucwords'    => array('open' => 'ucwords(',                                            'close'=> ')'),                            'lcucwords'  => array('open' => 'ucwords(strtolower(',                                            'close'=> '))')                                );        /** operators allowed when using extended TMPL_IF syntax */        var $allowed_if_ops = array('==','!=','<>','<','>','<=','>=');        /** dbs allowed by vlibTemplate::setDbLoop(). */        var $allowed_loop_dbs = array('MYSQL','POSTGRESQL','INFORMIX','INTERBASE','INGRES',                                      'MSSQL','MSQL','OCI8','ORACLE','OVRIMOS','SYBASE');        /** root directory of vlibTemplate automagically filled in */        var $VLIBTEMPLATE_ROOT = null;        /** contains current directory used when doing recursive include */        var $_currentincludedir = array();        /** current depth of includes */        var $_includedepth = 0;        /** full path to tmpl file */        var $_tmplfilename = null;        /** file data before it's parsed */        var $_tmplfile = null;        /** parsed version of file, ready for eval()ing */        var $_tmplfilep = null;        /** eval()ed version ready for printing or whatever */        var $_tmploutput = null;        /** array for variables to be kept */        var $_vars = array();        /** array where loop variables are kept */        var $_arrvars = array();        /** array which holds the current namespace during parse */        var $_namespace = array();        /** variable is set to true once the template is parsed, to save re-parsing everything */        var $_parsed = false;        /** array holds all unknowns vars */        var $_unknowns = array();        /** microtime when template parsing began */        var $_firstparsetime = null;        /** total time taken to parse template */        var $_totalparsetime = null;        /** name of current loop being passed in */        var $_currloopname = null;        /** rows with the above loop */        var $_currloop = array();        /** define vars to avoid warnings */        var $_debug = null;        var $_cache = null;                /** array which holds the dynamic Includes */        var $_dyninclude = array();    /*-----------------------------------------------------------------------------\    |                           public functions                                   |    \-----------------------------------------------------------------------------*/				        /**         * FUNCTION: newTemplate         *         * Usually called by the class constructor.         * Stores the filename in $this->_tmplfilename.         * Raises an error if the template file is not found.         *         * @param string $tmplfile full path to template file         * @return boolean true         * @access public         */        function newTemplate ($tmplfile) {            if (!$tfile = $this->_fileSearch($tmplfile)) vlibTemplateError::raiseError('VT_ERROR_NOFILE',KILL,$tmplfile);            // make sure that any parsing vars are cleared for the new template            $this->_tmplfile = null;            $this->_tmplfilep = null;            $this->_tmploutput = null;            $this->_parsed = false;            $this->_unknowns = array();            $this->_firstparsetime = null;            $this->_totalparsetime = null;            // reset debug module            if ($this->_debug) $this->_debugReset();            $this->_tmplfilename = $tfile;            return true;        }        /**         * FUNCTION: setVar         *         * Sets variables to be used by the template         * If $k is an array, then it will treat it as an associative array         * using the keys as variable names and the values as variable values.         *         * @param mixed $k key to define variable name         * @param mixed $v variable to assign to $k         * @return boolean true/false         * @access public         */        function setVar ($k,$v=null) {            if (is_array($k)) {                foreach($k as $key => $value){                    $key = ($this->OPTIONS['CASELESS']) ? strtolower(trim($key)) : trim($key);                    if (preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $key) && $value !== null ) {                        $this->_vars[$key] = $value;                    }                }            }            else {                if (preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $k) && $v !== null) {                    if ($this->OPTIONS['CASELESS']) $k = strtolower($k);                    $this->_vars[trim($k)] = $v;                }                else {                    return false;                }            }            return true;        }                /**         * FUNCTION: setInclude         *         * Sets dynamic includes to be used by the template         * If $k is an array, then it will treat it as an associative array         * using the keys as variable names and the values as variable values.         *         * @param mixed $k key to define variable name         * @param mixed $v variable to assign to $k         * @return boolean true/false         * @access public         */                function setInclude($k, $v = null) {        	if(is_array($k)) {				foreach($k as $key => $val) {					$this->_dyninclude[$key] = $val;				}			} else {				$this->_dyninclude[$k] = $v;			}						return true;		}        /**         * FUNCTION: unsetVar         *         * Unsets a variable which has already been set         * Parse in all vars wanted for deletion in seperate parametres         *         * @param string var name to remove use: vlibTemplate::unsetVar(var[, var..])         * @return boolean true/false returns true unless called with 0 params         * @access public         */        function unsetVar () {            $num_args = func_num_args();            if ($num_args < 1)  return false;            for ($i = 0; $i < $num_args; $i++) {                $var = func_get_arg($i);                if ($this->OPTIONS['CASELESS']) $var = strtolower($var);                if (!preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $var)) continue;                unset($this->_vars[$var]);            }            return true;        }        /**         * FUNCTION: getVars         *         * Gets all vars currently set in global namespace.         *         * @return array         * @access public         */        function getVars () {            if (empty($this->_vars)) return false;            return $this->_vars;        }        /**         * FUNCTION: getVar         *         * Gets a single var from the global namespace         *         * @return var         * @access public         */        function getVar ($var) {            if ($this->OPTIONS['CASELESS']) $var = strtolower($var);            if (empty($var) || !isset($this->_vars[$var])) return false;            return $this->_vars[$var];        }        /**         * FUNCTION: setContextVars         *         * sets the GLOBAL_CONTEXT_VARS         *         * @return true         * @access public         */        function setContextVars () {            $_phpself = @$GLOBALS['HTTP_SERVER_VARS']['PHP_SELF'];            $_pathinfo = @$GLOBALS['HTTP_SERVER_VARS']['PATH_INFO'];            $_request_uri = @$GLOBALS['HTTP_SERVER_VARS']['REQUEST_URI'];            $_qs   = @$GLOBALS['HTTP_SERVER_VARS']['QUERY_STRING'];            // the following fixes bug of $PHP_SELF on Win32 CGI and IIS.            $_self = (!empty($_pathinfo)) ? $_pathinfo : $_phpself;            $_uri  = (!empty($_request_uri)) ? $_request_uri : $_self.'?'.$_qs;            $this->setvar('__SELF__', $_self);            $this->setvar('__REQUEST_URI__', $_uri);            return true;        }        /**         * FUNCTION: setLoop         *         * Builds the loop construct for use with <TMPL_LOOP>.         *         * @param string $k string to define loop name         * @param array $v array to assign to $k         * @return boolean true/false         * @access public         */        function setLoop ($k,$v) {            if (is_array($v) && preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $k)) {                $k = ($this->OPTIONS['CASELESS']) ? strtolower(trim($k)) : trim($k);                $this->_arrvars[$k] = array();                if ($this->OPTIONS['SET_LOOP_VAR'] && !empty($v)) $this->setvar($k, 1);                if (($this->_arrvars[$k] = $this->_arrayBuild($v)) == false) {                    vlibTemplateError::raiseError('VT_WARNING_INVALID_ARR',WARNING,$k);                }            }            return true;        }        /**         * FUNCTION: setDbLoop [** EXPERIMENTAL **]         *         * Function to create a loop from a Db result resource link.         *         * @param string $loopname to commit loop. If not set, will use last loopname set using newLoop()         * @param string $result link to a Db result resource         * @param string $db_type, type of db that the result resource belongs to.         * @return boolean true/false         * @access public         */        function setDbLoop ($loopname, $result, $db_type='MYSQL') {            $db_type = strtoupper($db_type);            if (!in_array($db_type, $this->allowed_loop_dbs)) {                vlibTemplateError::raiseError('VT_WARNING_INVALID_LOOP_DB',WARNING, $db_type);                return false;            }            $loop_arr = array();            switch ($db_type) {                case 'MYSQL':                    if (get_resource_type($result) != 'mysql result') {                        vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -