欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2015年07月28日 17:23:50   作者:mickelfeng  
這篇文章主要介紹了PHP讀取配置文件類,可讀取ini,yaml,xml等配置文件,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

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

<?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']; 
 } 
} 
?> 

/** 
* 針對(duì)PHP的配置,如有配置文件 
*config.php 
<?php 
$db = array(); 
// Enter your database name here: 
$db['name'] = 'test'; 
// Enter the hostname of your MySQL server: 
$db['host'] = 'localhost'; 
?> 
//具體調(diào)用: 
include ('settings.php'); //原始環(huán)境假設(shè)每個(gè)類為單獨(dú)的一個(gè)類名.php文件 
// Load settings (PHP) 
$settings = new Settings_PHP; 
$settings->load('config.php'); 
echo 'PHP: ' . $settings->get('db.host') . ''; 
* 
*/ 
 讀取INI文件,主要用到parser_ini_file函數(shù),該函數(shù)返回一個(gè)數(shù)組,如第二個(gè)參數(shù)為true時(shí)則返回多維數(shù)組
/** 
* ini例子:config.ini 
* 
[db] 
name = test 
host = localhost 
//調(diào)用例子: 
$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這個(gè)庫(kù)
/** 
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有點(diǎn)過時(shí)??
2. xml比較好,
3. yaml很好,但是畢竟沒有標(biāo)準(zhǔn)化。
4. txt要自己組織格式,開放性不好。
5. 類序列化。比較好,但是不熟悉的人使用比較麻煩!
6. php定義常量(你不用修改數(shù)據(jù)嗎?)

所以:xml最好。

希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • PHP 獲取遠(yuǎn)程文件大小的3種解決方法

    PHP 獲取遠(yuǎn)程文件大小的3種解決方法

    以下是對(duì)PHP中獲取遠(yuǎn)程文件大小的3種解決方法進(jìn)行了詳細(xì)的介紹,需要的朋友參考下
    2013-07-07
  • PHP的靜態(tài)方法與普通方法用法實(shí)例分析

    PHP的靜態(tài)方法與普通方法用法實(shí)例分析

    這篇文章主要介紹了PHP的靜態(tài)方法與普通方法用法,結(jié)合實(shí)例形式分析了PHP靜態(tài)方法與普通方法的功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • 生成php程序的php代碼

    生成php程序的php代碼

    前臺(tái)程序不少情況下需要生成.php文件,諸如多用戶的在線日記程序、留言簿以及自助網(wǎng)站程序等等,都不可避免地在與用戶的交互中生成.php程序文件。一般的,所生成的.php文件內(nèi)容并不復(fù)雜,但麻雀雖小五臟俱全,完整的.php文件結(jié)構(gòu)必須得到保證。
    2008-04-04
  • 小文件php+SQLite存儲(chǔ)方案

    小文件php+SQLite存儲(chǔ)方案

    在互聯(lián)網(wǎng)快速發(fā)展的背景下,網(wǎng)絡(luò)上的數(shù)據(jù)內(nèi)容呈幾何級(jí)的增長(zhǎng),而其中增長(zhǎng)最快并且最容易給信息基礎(chǔ)架構(gòu)帶來挑戰(zhàn)的就是數(shù)目龐大的小文件(如圖片、電子圖書、郵件等)。
    2010-09-09
  • CMS中PHP判斷系統(tǒng)是否已經(jīng)安裝的方法示例

    CMS中PHP判斷系統(tǒng)是否已經(jīng)安裝的方法示例

    這篇文章主要介紹了CMS中PHP判斷系統(tǒng)是否已經(jīng)安裝的方法示例,需要的朋友可以參考下
    2014-07-07
  • DISCUZ在win2003環(huán)境下 Unable to access ./include/common.inc.php in... 的問題終極解決方案

    DISCUZ在win2003環(huán)境下 Unable to access ./include/common.inc.php

    今天幫客戶配置服務(wù)器的時(shí)候發(fā)現(xiàn)的這個(gè)問題,也是因?yàn)闄?quán)限問題或因?yàn)閜hp的配置問題,如果碰到這樣的問題,大家可以參考下面的方法。
    2011-11-11
  • php使用sql數(shù)據(jù)庫(kù) 獲取字段問題介紹

    php使用sql數(shù)據(jù)庫(kù) 獲取字段問題介紹

    由于sql server中,ntext和nvarchar字段是用unicode編碼存儲(chǔ)內(nèi)容的,因此php通過mssql擴(kuò)展讀取帶ntext和nvarchar類型字段的時(shí)候會(huì)抱錯(cuò)
    2013-08-08
  • php通過COM類調(diào)用組件的實(shí)現(xiàn)代碼

    php通過COM類調(diào)用組件的實(shí)現(xiàn)代碼

    COM(Component Object Model)組件對(duì)象模型,是一種跨應(yīng)用和語言共享二進(jìn)制代碼的方法。COM可以作為DLL被本機(jī)程序載入也可以通過DCOM被遠(yuǎn)程進(jìn)程調(diào)用
    2012-01-01
  • PHP連接SQLServer2005的方法

    PHP連接SQLServer2005的方法

    本文主要向大家介紹了如何使用php連接sqlserver2005數(shù)據(jù)庫(kù)的方法,并附上連接必需的DLL文件,及簡(jiǎn)單示例,這里推薦給小伙伴
    2015-01-01
  • php之對(duì)抗Web掃描器的腳本技巧

    php之對(duì)抗Web掃描器的腳本技巧

    我們很難保證一個(gè)Web程序的安全性,因?yàn)楣碇烂魈鞎?huì)有什么新的漏洞出現(xiàn),鬼知道某個(gè)模塊是不是一個(gè)毫無安全意識(shí)的程序員編寫的。
    2008-10-10

最新評(píng)論