国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

PHP讀取配置文件類實例(可讀取ini,yaml,xml等)

2024-04-25 20:40:12
字體:
來源:轉載
供稿:網友

本文實例講述了PHP讀取配置文件類實例。分享給大家供大家參考。具體如下:

<?php

class Settings {

var $_settings = array ();

function get($var) {

$var = explode ( '.', $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的配置,如有配置文件

*config.php

<?php

$db = array();

// Enter your database name here:

$db['name'] = 'test';

// Enter the hostname of your MySQL server:

$db['host'] = 'localhost';

?>

//具體調用:

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

/**

* XML例子:config.xml

<?xml version="1.0" encoding="UTF-8"?>

<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這個庫<a href="http://spyc.sourceforge.net//">

/</a>**

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最好。

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 抚宁县| 东山县| 肥东县| 旬邑县| 开化县| 蒲江县| 衢州市| 安泽县| 清新县| 乌海市| 大竹县| 梁河县| 武定县| 萨迦县| 盖州市| 清水河县| 新建县| 安吉县| 保定市| 临潭县| 中江县| 馆陶县| 杭州市| 梓潼县| 都江堰市| 济源市| 阳西县| 杭锦后旗| 平和县| 邓州市| 白玉县| 若尔盖县| 大新县| 孟州市| 安丘市| 平顺县| 上饶市| 雅安市| 保定市| 斗六市| 黄石市|