suchen
Heimphp教程php手册PHP:读取ini xml等配置文件

PHP:读取ini xml等配置文件

Jun 06, 2016 pm 08:09 PM
iniphpxml开发unsStunde程序读取配置文件

我们在开发程序的时候会经常用到数据存储这一块。一般呢,如果数据不多,我们一般都会选择把数据把数据保存在本地的配置上面。而配置文件最常见到的格式主要有ini xml等几种格式。大家为什么把数据保存在文本类型的文件里面,我也不知道。也许是读取速度上面

我们在开发程序的时候会经常用到数据存储这一块。一般呢,如果数据不多,我们一般都会选择把数据把数据保存在本地的配置上面。而配置文件最常见到的格式主要有ini xml等几种格式。大家为什么把数据保存在文本类型的文件里面,我也不知道。也许是读取速度上面的差异吧。好了,下面我们来看看,PHP怎么从本地的配置文件里面读取数据,并获得自己所需的部分呢。

<?php class Settings {      
    var $_settings = array ();      
    function get($var) {      
        $var = explode ( &#8216;.&#8217;, $var );         
        $result = $this->_settings;      
        foreach ( $var as $key ) {      
            if (! isset ( $result [$key] )) {      
                return false;      
            }             
            $result = $result [$key];      
        }             
        return $result;      
    }      
    function load() {      
        trigger_error ( ’Not yet implemented’, E_USER_ERROR );      
    }      
}      
class Settings_PHP extends Settings {      
    function load($file) {      
        if (file_exists ( $file ) == false) {      
            return false;      
        }      
        // Include file      
        include ($file);      
        unset ( $file );      
        // Get declared variables      
        $vars = get_defined_vars ();      
        // Add to settings array      
        foreach ( $vars as $key => $val ) {      
            if ($key == ’this’)      
                continue;                 
            $this->_settings [$key] = $val;      
        }      
    }      
}      
class Settings_INI extends Settings {      
    function load($file) {      
        if (file_exists ( $file ) == false) {      
            return false;      
        }      
        $this->_settings = parse_ini_file ( $file, true );      
    }      
}      
class Settings_YAML extends Settings {      
    function load($file) {      
        if (file_exists ( $file ) == false) {      
            return false;      
        }      
        include (‘spyc.php’);      
        $this->_settings = Spyc::YAMLLoad ( $file );      
    }      
}      
class Settings_XML extends Settings {      
    function load($file) {      
        if (file_exists ( $file ) == false) {      
            return false;      
        }      
        include (‘xmllib.php’);      
        $xml = file_get_contents ( $file );      
        $data = XML_unserialize ( $xml );      
        $this->_settings = $data ['settings'];      
    }      
}      
?>      
 php   
/**    
* 针对PHP的配置,如有配置文件    
*config.php    
<?php $db = array();    
// Enter your database name here:    
$db['name'] = &#8217;test&#8217;;    
// Enter the hostname of your MySQL server:    
$db['host'] = &#8217;localhost&#8217;;    
?>    
//具体调用:    
include (‘settings.php’); //原始环境假设每个类为单独的一个类名.php文件    
// Load settings (PHP)    
$settings = new Settings_PHP;    
$settings->load(‘config.php’);    
echo ’PHP: ’ . $settings->get(‘db.host’) . ”;    
*    
*/     
 读取INI文件,主要用到parser_ini_file函数,该函数返回一个数组,如第二个参数为true时则返回多维数组   
/**    
* ini例子:config.ini    
*     
[db]    
name = test    
host = localhost    
//调用例子:    
$settings = new Settings_INI;    
$settings->load(‘config.ini’);    
echo ’INI: ’ . $settings->get(‘db.host’) . ”;    
*/     
 读取XML文件,需要用到XML_PARSER,xmllib.php在http://hudeyong926.iteye.com/admin/blogs/836048   
/**    
* XML例子:config.xml    
<?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?>    
<settings>    
<db>    
    <name>test</name>    
    <host>localhost</host>    
</db>    
</settings>    
// Load settings (XML)    
$settings = New Settings_XML;    
$settings->load(‘config.xml’);    
echo ’XML: ’ . $settings->get(‘db.host’) . ”;    
*    
*/     
 读取YAML格式文件,使用YAML必须使用到SPYC这个库,相关链接在http://spyc.sourceforge.net/   
/**    
YAML配置例子:config.yaml    
db:    
   name: test    
   host: localhost     
// Load settings (YAML)    
$settings = New Settings_YAML;    
$settings->load(‘config.yaml’);    
echo ’YAML: ’ . $settings->get(‘db.host’) . ”;    
*/     
1。ini有点过时??   
2。xml比较好,   
3。yaml很好,但是毕竟没有标准化。   
4。txt要自己组织格式,开放性不好。   
5。类序列化。比较好,但是不熟悉的人使用比较麻烦!   
6。php定义常量(你不用修改数据吗?)   
所以:xml最好。  

当然了,如果数据庞大,我们就需要借助数据库来保存数据了。为了执行速度,更为了安全……

转载请注明:IT路人 » PHP:读取ini xml等配置文件

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),