www.gusucode.com > iWebshop开源PHP商城系统 v2.8源码程序 > iwebshop/classes/config.php
<?php /** * @copyright Copyright(c) 2011 jooyea.cn * @file config.php * @brief * @author webning * @date 2011-03-24 * @version 0.6 * @note */ /** * @brief Config 产品中所有Config文件取值统一入口文件 * @class Config */ class Config { //不需要过滤的键名 private static $safeKey = array('index_slide','service_online'); private $configFile; private $config; /** * @brief 初始化对应的config文件 * @param String $config config文件名 */ public function __construct($config) { $this->initConfig($config); } /** * @brief 设定Config文件 * @param String $config config文件名 */ public function setConfig($config) { $this->initConfig($config); } /** * @brief 获取全部的config信息 */ public function getInfo() { return $this->config; } /** * @brief 初始化对应的config文件 * @param String $config config文件名 * @return Array 或者为null */ private function initConfig($config) { if(isset(IWeb::$app->config['configExt'][$config])) { $this->configFile = IWeb::$app->getBasePath().IWeb::$app->config['configExt'][$config]; $this->config = include($this->configFile); } else $this->config = null; } /** * @brief 取得当前Config文件下的对应变量 * @param String $name 变量名 * @return mixed * @note 此函数可自由扩展自己对应的默认值 */ public function __get($name) { if(isset($this->config[$name])) { return $this->config[$name]; } return ''; } /** * @brief 取得当前Config文件下的对应变量 * @param String $name 变量名 * @return mixed * @note 此函数可自由扩展自己对应的默认值 */ public function write($inputArray) { self::edit($this->configFile , $inputArray); } /** * @brief 修改配置文件信息 * @param string 配置文件名 * @param array 写入的配置内容 key:配置信息里面key值; value:配置信息里面的value值 */ public static function edit($configFile,$inputArray) { //安全过滤要写入文件的内容 foreach($inputArray as $key => $val) { if(!in_array($key,self::$safeKey)) { $inputArray[$key] = IFilter::act($val,'text'); } } $configStr = ""; //读取配置信息内容 if(file_exists($configFile)) { $configStr = file_get_contents($configFile); $configArray = include($configFile); } if(trim($configStr)=="") { $configStr = "<?php return array( \r\n);?>"; $configArray = array(); } //表单中存在但是不进行录用的键值 $except = array('form_index'); foreach($except as $value) { unset($inputArray[$value]); } $inputArray = array_merge($configArray,$inputArray); $configData = var_export($inputArray,true); $configStr = "<?php return {$configData}?>"; //写入配置文件 $fileObj = new IFile($configFile,'w+'); $fileObj->write($configStr); } } ?>