亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? smarty_config.class.php

?? 通達OA官方提供的30源代碼,感覺很實在
?? PHP
字號:
<?php

require_once "./smarty/PEAR.php";

/**
 * Config_File class.
 *
 * @version 1.5.2
 * @author Andrei Zmievski <andrei@php.net>
 * @access var
 *
 * Copyright: 2001 ispi of Lincoln, Inc.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General var
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General var License for more details.
 *
 * You should have received a copy of the GNU Lesser General var
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 * You may contact the author of Config_File by e-mail at:
 * andrei@php.net
 *
 * Or, write to:
 * Andrei Zmievski
 * Software Engineer, ispi
 * 237 S. 70th suite 220
 * Lincoln, NE 68510
 *
 * The latest version of Config_File can be obtained from:
 * http://www.phpinsider.com
 */

class Config_File extends PEAR {
	/* Options */
	/**
	 * Controls whether variables with the same name overwrite each other.
	 *
	 * @access var
	 */
	var $overwrite		=	true;

	/**
	 * Controls whether config values of on/true/yes and off/false/no get
	 * converted to boolean values automatically.
	 *
	 * @access var
	 */
	var $booleanize		=	true;

	/**
	 * Controls whether hidden config sections/vars are read from the file.
	 *
	 * @access var
	 */
	var $read_hidden 	=	true;

	/* Private variables */
	var $_config_path	= "";
	var $_config_data	= array();
	var $_separator		= "";


	/**
	 * Constructs a new config file class.
	 *
	 * @param $config_path string (optional) path to the config files
	 * @access var
	 */
	function Config_File($config_path = NULL)
	{
		$this->PEAR();

		if (substr(PHP_OS, 1, 3) == "WIN" || substr(PHP_OS, 1, 4) == "OS/2")
			$this->_separator = "\\";
		else
			$this->_separator = "/";

		if (isset($config_path))
			$this->set_path($config_path);
	}


	/**
	 * Set the path where configuration files can be found.
	 *
	 * @param $config_path string  path to the config files
	 * @access var
	 */
	function set_path($config_path)
	{
		if (!empty($config_path)) {
			if (!is_string($config_path) || !file_exists($config_path) || !is_dir($config_path)) {
				return new Config_File_Error("Bad config file path '$config_path'");
			}

			$this->_config_path = $config_path . $this->_separator;
		}
	}


	/**
	 * Retrieves config info based on the file, section, and variable name.
	 *
	 * @access var
	 * @param $file_name string config file to get info for
	 * @param $section_name string (optional) section to get info for
	 * @param $var_name string (optional) variable to get info for
	 * @return mixed a value or array of values
	 */
	function &get($file_name, $section_name = NULL, $var_name = NULL)
	{
		if (empty($file_name))
			return new Config_File_Error('Empty config file name');
		else {
			$file_name = $this->_config_path . $file_name;
			if (!isset($this->_config_data[$file_name]))
				$this->load_file($file_name, false);
		}

		if (!empty($var_name)) {
			if (empty($section_name))
			{
				return $this->_config_data[$file_name]["vars"][$var_name];
			}
			else
				return $this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name];
		} else {
			if (empty($section_name))
				return (array)$this->_config_data[$file_name]["vars"];
			else
				return (array)$this->_config_data[$file_name]["sections"][$section_name]["vars"];
		}
	}


	/**
	 * Retrieves config info based on the key.
	 *
	 * @access var
	 * @param $file_name string config key (filename/section/var)
	 * @return mixed a value or array of values
	 */
	function &get_key($config_key)
	{
		list($file_name, $section_name, $var_name) = explode('/', $config_key, 3);
		$result = &$this->get($file_name, $section_name, $var_name);
		return $result;
	}

	/**
	 * Get all loaded config file names.
	 *
	 * @access var
	 * @return array an array of loaded config file names
	 */
	function get_file_names()
	{
		return array_keys($this->_config_data);
	}


	/**
	 * Get all section names from a loaded file.
	 *
	 * @access var
	 * @param  $file_name string config file to get section names from
	 * @return array an array of section names from the specified file
	 */
	function get_section_names($file_name)
	{
		$file_name = $this->_config_path . $file_name;
		if (!isset($this->_config_data[$file_name]))
			return new Config_File_Error("Unknown config file '$file_name'");

		return array_keys($this->_config_data[$file_name]["sections"]);
	}


	/**
	 * Get all global or section variable names.
	 *
	 * @access var
	 * @param $file_name string config file to get info for
	 * @param $section_name string (optional) section to get info for
	 * @return array an array of variables names from the specified file/section
	 */
	function get_var_names($file_name, $section = NULL)
	{
		if (empty($file_name))
			return new Config_File_Error('Empty config file name');
		else if (!isset($this->_config_data[$file_name]))
			return new Config_File_Error("Unknown config file '$file_name'");

		if (empty($section))
			return array_keys($this->_config_data[$file_name]["vars"]);
		else
			return array_keys($this->_config_data[$file_name]["sections"][$section]["vars"]);
	}


	/**
	 * Clear loaded config data for a certain file or all files.
	 *
	 * @access var
	 * @param  $file_name string file to clear config data for
	 */
	function clear($file_name = NULL)
	{
		if ($file_name === NULL)
			$this->_config_data = array();
		else if (isset($this->_config_data[$file_name]))
			$this->_config_data[$file_name] = array();
	}


	/**
	 * Load a configuration file manually.
	 *
	 * @access var
	 * @param  $file_name string file name to load
	 * @param  $prepend_path boolean whether current config path should be prepended to the filename
	 */
	function load_file($file_name, $prepend_path = true)
	{
		global	$php_errormsg;

		if ($prepend_path && $this->_config_path != "")
			$config_file = $this->_config_path . $file_name;
		else
			$config_file = $file_name;

		ini_set('track_errors', true);
		$fp = @fopen($config_file, "r");
		if (!is_resource($fp))
			return new Config_File_Error($php_errormsg);

		$contents = fread($fp, filesize($config_file));
		fclose($fp);

		$config_data = array();

		/* Get global variables first. */
		if (preg_match("/^(.*?)(\n\[|\Z)/s", $contents, $match))
			$config_data["vars"] = $this->_parse_config_block($match[1]);

		/* Get section variables. */
		$config_data["sections"] = array();
		preg_match_all("/^\[(.*?)\]/m", $contents, $match);
		foreach ($match[1] as $section) {
			if ($section{0} == '.' && !$this->read_hidden)
				continue;
			if (preg_match("/\[".preg_quote($section)."\](.*?)(\n\[|\Z)/s", $contents, $match))
				if ($section{0} == '.')
					$section = substr($section, 1);
				$config_data["sections"][$section]["vars"] = $this->_parse_config_block($match[1]);
		}

		$this->_config_data[$config_file] = $config_data;
	}


	function _parse_config_block($config_block)
	{
		$vars = array();

		/* First we grab the multi-line values. */
		if (preg_match_all("/^([^=\n]+)=\s*\"{3}(.*?)\"{3}\s*$/ms", $config_block, $match, PREG_SET_ORDER)) {
			for ($i = 0; $i < count($match); $i++) {
				$this->_set_config_var($vars, trim($match[$i][1]), $match[$i][2], false);
			}
			$config_block = preg_replace("/^[^=\n]+=\s*\"{3}.*?\"{3}\s*$/ms", "", $config_block);
		}


		$config_lines = preg_split("/\n+/", $config_block);

		foreach ($config_lines as $line) {
			if (preg_match("/^\s*(\.?\w+)\s*=(.*)/", $line, $match)) {
				$var_value = preg_replace('/^([\'"])(.*)\1$/', '\2', trim($match[2]));
				$this->_set_config_var($vars, trim($match[1]), $var_value, $this->booleanize);
			}
		}

		return $vars;
	}

	function _set_config_var(&$container, $var_name, $var_value, $booleanize)
	{
		if ($var_name{0} == '.') {
			if (!$this->read_hidden)
				return;
			else
				$var_name = substr($var_name, 1);
		}

		if (!preg_match("/^[a-zA-Z_]\w*$/", $var_name))
			return new Config_File_Error("Bad variable name '$var_name'");

		if ($booleanize) {
			if (preg_match("/^(on|true|yes)$/i", $var_value))
				$var_value = true;
			else if (preg_match("/^(off|false|no)$/i", $var_value))
				$var_value = false;
		}

		if (!isset($container[$var_name]) || $this->overwrite)
			$container[$var_name] = $var_value;
		else {
			settype($container[$var_name], 'array');
			$container[$var_name][] = $var_value;
		}
	}
}

/** @exclude */
class Config_File_Error extends PEAR_Error {
	var $error_message_prefix = 'Config_File: ';

	function Config_File_Error($message,
							   $code = 0,
							   $mode = PEAR_ERROR_PRINT,
							   $level = E_USER_NOTICE)
	{
		$this->PEAR_Error($message."\n", $code, $mode, $level);
	}
}

?>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜私人影院| 亚洲在线视频一区| 51精品秘密在线观看| 色噜噜狠狠成人中文综合| www.日韩在线| 91久久久免费一区二区| 99久久婷婷国产精品综合| 99国产欧美久久久精品| 成人福利视频在线看| 色综合色狠狠综合色| 91在线观看一区二区| 欧洲视频一区二区| 欧美亚洲国产一区二区三区| 精品视频在线看| 欧美一区二区三区啪啪| 日韩免费视频一区| 欧美国产综合色视频| 亚洲欧洲成人精品av97| 亚洲一区二区三区美女| 久久激情综合网| 国产成人在线观看免费网站| 成人一级黄色片| 欧洲人成人精品| 欧美电影免费观看高清完整版在线 | 久久蜜桃av一区精品变态类天堂| 国产丝袜欧美中文另类| 亚洲人成小说网站色在线 | 在线视频一区二区三区| 欧美肥胖老妇做爰| 国产日产欧美一区二区三区 | 91黄色免费看| 日韩午夜三级在线| 国产精品欧美精品| 亚洲电影一级黄| 国产自产2019最新不卡| 91丝袜美女网| 欧美一区二区在线播放| 日本一区二区三区视频视频| 亚洲一区影音先锋| 国产毛片精品国产一区二区三区| 99久久国产综合色|国产精品| 欧美私人免费视频| 国产婷婷一区二区| 日本欧美大码aⅴ在线播放| www.爱久久.com| 91精品国产综合久久精品性色| 久久综合九色综合久久久精品综合| 亚洲图片你懂的| 美女久久久精品| 91免费看视频| 久久在线免费观看| 亚洲va国产天堂va久久en| www.欧美色图| 日韩精品免费专区| 裸体一区二区三区| 国产欧美一区二区精品忘忧草| 日韩精品中文字幕在线一区| 国产精品久久久久久久久动漫| 蜜臀av一级做a爰片久久| 色婷婷综合视频在线观看| 精品国产1区二区| 免费在线观看成人| 欧美久久一二区| 亚洲一区二区美女| 色噜噜狠狠色综合中国| 亚洲人午夜精品天堂一二香蕉| 成人午夜激情在线| 国产亚洲欧美日韩日本| 国产自产高清不卡| 久久久噜噜噜久噜久久综合| 久久国产欧美日韩精品| 91精品国产综合久久精品app| 亚洲自拍另类综合| 色88888久久久久久影院按摩| 久久精品夜夜夜夜久久| 国产一区二区三区免费播放| 欧美mv日韩mv国产网站app| 三级一区在线视频先锋| 7777精品伊人久久久大香线蕉完整版 | 成人天堂资源www在线| 欧美一区二区视频在线观看2020| 亚洲一区二区美女| 欧美片网站yy| 免费一级欧美片在线观看| 欧美va天堂va视频va在线| 精品一区二区国语对白| 久久久国产精华| 成人美女在线视频| 一区在线播放视频| 日本久久一区二区| 午夜精品123| 日韩欧美成人一区二区| 国产中文一区二区三区| 国产网站一区二区| 色哟哟国产精品| 午夜亚洲国产au精品一区二区| 91精品国产欧美一区二区成人| 毛片不卡一区二区| 国产清纯白嫩初高生在线观看91| aa级大片欧美| 日本成人在线视频网站| 国产网站一区二区| 色综合久久久久网| 美女视频黄免费的久久| 国产三级欧美三级日产三级99| 91蜜桃网址入口| 视频在线在亚洲| 国产欧美日韩精品一区| 在线观看亚洲专区| 韩国欧美国产1区| 最新中文字幕一区二区三区| 欧美日韩精品一区二区在线播放| 精品无人码麻豆乱码1区2区| 亚洲欧美在线观看| 日韩欧美视频在线| 91在线小视频| 九九国产精品视频| 亚洲伦理在线精品| 精品美女一区二区| 在线观看日韩av先锋影音电影院| 国产综合色视频| 亚洲韩国精品一区| 久久九九久精品国产免费直播| 欧美色图12p| 国产+成+人+亚洲欧洲自线| 视频在线观看一区二区三区| 中文字幕一区二区5566日韩| 欧美一级高清片| 91亚洲精品久久久蜜桃网站| 日本aⅴ精品一区二区三区 | 欧美日韩在线播| 国产成人在线视频网站| 日本在线观看不卡视频| 亚洲码国产岛国毛片在线| 国产亚洲一区二区三区四区| 日韩一级片网址| 欧美一a一片一级一片| av不卡免费在线观看| 高清不卡一区二区在线| 奇米影视在线99精品| 亚洲国产综合色| **欧美大码日韩| 国产精品不卡在线| 欧美国产日韩a欧美在线观看| 欧美日产在线观看| 欧美亚洲日本一区| 欧美午夜一区二区三区免费大片| 91色.com| 在线观看日产精品| 日本电影欧美片| 色噜噜狠狠一区二区三区果冻| 99久久精品国产观看| 91在线视频网址| 色综合激情五月| 91美女福利视频| 96av麻豆蜜桃一区二区| 色嗨嗨av一区二区三区| 色中色一区二区| 欧美日韩一级二级三级| 欧美精品色综合| 日韩一区二区电影网| 91精品国产欧美日韩| 6080亚洲精品一区二区| 欧美一区二区福利在线| 日韩免费视频线观看| 久久久精品国产免大香伊| 中文字幕欧美三区| 亚洲欧美一区二区不卡| 亚洲午夜免费电影| 另类小说色综合网站| 精品在线免费视频| 国产suv精品一区二区三区| 91视频www| 欧美精选在线播放| 精品日韩99亚洲| 国产精品久久久久久久岛一牛影视 | 首页国产丝袜综合| 激情国产一区二区| 99精品偷自拍| 91精品久久久久久久91蜜桃| 精品国产1区2区3区| 亚洲欧美日本韩国| 日韩精品福利网| 成人永久aaa| 在线播放中文字幕一区| 久久久国产精品不卡| 亚洲激情图片qvod| 国产一区视频在线看| 日本韩国欧美国产| 精品国产一区二区国模嫣然| 国产精品每日更新在线播放网址 | 欧美日韩免费一区二区三区视频| 在线成人av网站| 国产精品天天看| 日韩精品久久理论片| 91在线云播放| 久久久99精品久久| 日韩国产在线一| 91小视频在线| 国产清纯美女被跳蛋高潮一区二区久久w |