html5中文学习网

您的位置: 首页 > 网络编程 > PHP编程 » 正文

PHP读取配置文件类(php,ini,yaml,xml)_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/**  * 针对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在http://hudeyong926.iteye.com/admin/blogs/836048/**  * 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这个库,相关链接在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最好。
9tCHTML5中文学习网 - HTML5先行者学习网
9tCHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助