這篇文章主要介紹了關于PHP如何動態修改配置文件,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
一個動態網站,一般都會有各種后臺配置,如果配置量不多,單獨設計一張表就顯得有些浪費資源了
有些童鞋們喜歡將各種配置直接存儲在項目中,想做到后臺可以控制,就需要一套對配置文件做增刪改查的操作方法了
不說廢話直接讓我們,噠~噠~噠~
新建一個 PHP 文件,命名為 Config.html' target='_blank'>class.php,然后按照注釋中的內容來使用就行~
/* * @link http://mkblog.cn/ * @author mengkun * @license MIT * PHP 無數據庫配置文件增刪查改模塊 * !注:本模塊未對高并發進行優化兼容,如果數據量或并發過大,還是用數據庫比較好 ? * 使用方法: * 一、引用本模塊 * require_once Config.class.php * 二、初始化 * $C = new Config( 配置文件名 // * 如果是在二級目錄下,請確保該目錄存在 * 三、內置方法 * - 存儲(如果已存在則是修改)單條數據 * $C- set( sitename , 噠噠噠 * - 存儲(如果已存在則是修改)一個數組 * $C- set( user , array( name = peter , age = 12)); * - 讀取一條數據 * $C- get( user , 默認值 * - 刪除一條數據 * $C- delete( user * - 保存對數據的修改 * $C- save(); // 保存成功返回 true,否則返回失敗原因 * * 注:為了避免頻繁地寫文件,以上所有對數據的操作都必須調用一次 $C- save(); 才會真正被保存到配置文件中 * 建議將所有的數據操作都執行完后再進行存儲操作。 * * 附:精簡寫法 * $C- set( sitename , 噠噠噠 )- save(); define( CONFIG_EXIT , ?php exit;? class Config { private $data; private $file; /** * 構造函數 * @param $file 存儲數據文件 * @return function __construct($file) { $file = $file. .php $this- file = $file; $this- data= self::read($file); /** * 讀取配置文件 * @param $file 要讀取的數據文件 * @return 讀取到的全部數據信息 public function read($file) { if(!file_exists($file)) return array(); $str = file_get_contents($file); $str = substr($str, strlen(CONFIG_EXIT)); $data = json_decode($str, true); if (is_null($data)) return array(); return $data; /** * 獲取指定項的值 * @param $key 要獲取的項名 * @param $default 默認值 * @return data public function get($key = null, $default = ) { if (is_null($key)) return $this- data; // 取全部數據 if(isset($this- data[$key])) return $this- data[$key]; return $default; /** * 設置指定項的值 * @param $key 要設置的項名 * @param $value 值 * @return null public function set($key, $value) { if(is_string($key)) { // 更新單條數據 $this- data[$key] = $value; } else if(is_array($key)) { // 更新多條數據 foreach ($this- data as $k = $v) { if ($v[$key[0]] == $key[1]) { $this- data[$k][$value[0]] = $value[1]; return $this; /** * 刪除并清空指定項 * @param $key 刪除項名 * @return null public function delete($key) { unset($this- data[$key]); return $this; /** * 保存配置文件 * @param $file 要保存的數據文件 * @return true-成功 其它-保存失敗原因 public function save() { if(defined( JSON_PRETTY_PRINT )) { $jsonStr = json_encode($this- data, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT); } else { $jsonStr = json_encode($this- data); // 含有二進制或非utf8字符串對應檢測 if(is_null($jsonStr)) return 數據文件有誤 $buffer = CONFIG_EXIT.$jsonStr; $file_strm = fopen($this- file, w if(!$file_strm) return 寫入文件失敗,請賦予 .$file. 文件寫權限! fwrite($file_strm, $buffer); fclose($file_strm); return true; }
代碼截取來源mengken博客
一個動態網站,一般都會有各種后臺配置,如果配置量不多,單獨設計一張表就顯得有些浪費資源了
有些童鞋們喜歡將各種配置直接存儲在項目中,想做到后臺可以控制,就需要一套對配置文件做增刪改查的操作方法了
不說廢話直接讓我們,噠~噠~噠~
新建一個 PHP 文件,命名為 Config.class.php,然后按照注釋中的內容來使用就行~
/* * @link http://mkblog.cn/ * @author mengkun * @license MIT * PHP 無數據庫配置文件增刪查改模塊 * !注:本模塊未對高并發進行優化兼容,如果數據量或并發過大,還是用數據庫比較好 ? * 使用方法: * 一、引用本模塊 * require_once Config.class.php * 二、初始化 * $C = new Config( 配置文件名 // * 如果是在二級目錄下,請確保該目錄存在 * 三、內置方法 * - 存儲(如果已存在則是修改)單條數據 * $C- set( sitename , 噠噠噠 * - 存儲(如果已存在則是修改)一個數組 * $C- set( user , array( name = peter , age = 12)); * - 讀取一條數據 * $C- get( user , 默認值 * - 刪除一條數據 * $C- delete( user * - 保存對數據的修改 * $C- save(); // 保存成功返回 true,否則返回失敗原因 * * 注:為了避免頻繁地寫文件,以上所有對數據的操作都必須調用一次 $C- save(); 才會真正被保存到配置文件中 * 建議將所有的數據操作都執行完后再進行存儲操作。 * * 附:精簡寫法 * $C- set( sitename , 噠噠噠 )- save(); define( CONFIG_EXIT , ?php exit;? class Config { private $data; private $file; /** * 構造函數 * @param $file 存儲數據文件 * @return function __construct($file) { $file = $file. .php $this- file = $file; $this- data= self::read($file); /** * 讀取配置文件 * @param $file 要讀取的數據文件 * @return 讀取到的全部數據信息 public function read($file) { if(!file_exists($file)) return array(); $str = file_get_contents($file); $str = substr($str, strlen(CONFIG_EXIT)); $data = json_decode($str, true); if (is_null($data)) return array(); return $data; /** * 獲取指定項的值 * @param $key 要獲取的項名 * @param $default 默認值 * @return data public function get($key = null, $default = ) { if (is_null($key)) return $this- data; // 取全部數據 if(isset($this- data[$key])) return $this- data[$key]; return $default; /** * 設置指定項的值 * @param $key 要設置的項名 * @param $value 值 * @return null public function set($key, $value) { if(is_string($key)) { // 更新單條數據 $this- data[$key] = $value; } else if(is_array($key)) { // 更新多條數據 foreach ($this- data as $k = $v) { if ($v[$key[0]] == $key[1]) { $this- data[$k][$value[0]] = $value[1]; return $this; /** * 刪除并清空指定項 * @param $key 刪除項名 * @return null public function delete($key) { unset($this- data[$key]); return $this; /** * 保存配置文件 * @param $file 要保存的數據文件 * @return true-成功 其它-保存失敗原因 public function save() { if(defined( JSON_PRETTY_PRINT )) { $jsonStr = json_encode($this- data, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT); } else { $jsonStr = json_encode($this- data); // 含有二進制或非utf8字符串對應檢測 if(is_null($jsonStr)) return 數據文件有誤 $buffer = CONFIG_EXIT.$jsonStr; $file_strm = fopen($this- file, w if(!$file_strm) return 寫入文件失敗,請賦予 .$file. 文件寫權限! fwrite($file_strm, $buffer); fclose($file_strm); return true; }
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !
相關推薦:
thinkphp常見路徑的用法解析
PHPMailer ThinkPHP實現自動發送郵件功能
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答