Heim  >  Artikel  >  Backend-Entwicklung  >  So ändern Sie Konfigurationsdateien dynamisch in PHP

So ändern Sie Konfigurationsdateien dynamisch in PHP

不言
不言Original
2018-06-11 11:13:074470Durchsuche

In diesem Artikel wird hauptsächlich beschrieben, wie man Konfigurationsdateien in PHP dynamisch ändert. Jetzt kann ich ihn mit Ihnen teilen.

Eine dynamische Website hat im Allgemeinen verschiedene Backend-Konfigurationen , wenn es nicht viel Konfiguration gibt, wäre es eine Verschwendung von Ressourcen, eine einzelne Tabelle zu entwerfen

Manche Kinder speichern gerne verschiedene Konfigurationen direkt im Projekt. Wenn Sie das Backend steuern möchten, benötigen Sie eine Hier ist wie man Konfigurationsdateien hinzufügt, löscht, ändert und überprüft

Lass uns keinen Unsinn reden, da~da~da~

Erstellen Sie eine neue PHP-Datei und nennen Sie sie Config.class.php. Dann einfach Verwenden Sie es entsprechend dem Inhalt in den Kommentaren~

/* 
* @link https://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(&#39;CONFIG_EXIT&#39;, &#39;<?php exit;?>&#39;);  
class Config {  
    private $data;  
    private $file;  

    /** 
     * 构造函数 
     * @param $file 存储数据文件 
     * @return  
     */  
    function __construct($file) {  
        $file = $file.&#39;.php&#39;;  
        $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 = &#39;&#39;) {  
        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(&#39;JSON_PRETTY_PRINT&#39;)) {  
            $jsonStr = json_encode($this->data, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);  
        } else {  
            $jsonStr = json_encode($this->data);  
        }  

        // 含有二进制或非utf8字符串对应检测  
        if(is_null($jsonStr)) return &#39;数据文件有误&#39;;  
        $buffer = CONFIG_EXIT.$jsonStr;  

        $file_strm = fopen($this->file, &#39;w&#39;);  
        if(!$file_strm) return &#39;写入文件失败,请赋予 &#39;.$file.&#39; 文件写权限!&#39;;  
        fwrite($file_strm, $buffer);  
        fclose($file_strm);  
        return true;  
    }  
}

Code-Interception-Quelle Mengken-Blog

Eine dynamische Website hat normalerweise verschiedene Hintergrundkonfigurationen. Wenn die Konfiguration nicht groß ist, entwerfen Sie eine separate Tabelle Scheint eine Verschwendung von Ressourcen zu sein

Einige Kinder speichern verschiedene Konfigurationen gerne direkt im Projekt. Wenn sie den Hintergrund steuern möchten, benötigen sie eine Reihe von Betriebsmethoden zum Hinzufügen, Löschen, Ändern und Überprüfen der Konfiguration Dateien

Reden Sie keinen Unsinn und fangen wir direkt an, da~da~da~

Erstellen Sie eine neue PHP-Datei, nennen Sie sie Config.class.php und verwenden Sie sie dann entsprechend zum Inhalt in den Kommentaren~

rrree

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Nutzungsanalyse gemeinsamer Thinkphp-Pfade

PHPMailer ThinkPHP implementiert die automatische E-Mail-Versandfunktion

Das obige ist der detaillierte Inhalt vonSo ändern Sie Konfigurationsdateien dynamisch in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn