<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    <?php
    /**
    * 讀取4中配置的表信息,現支持php.ini,xml.yaml
    */
    class Settings{
    var $_settings = array();
    /**
    ??? * 獲取某些設置的值
    ??? *
    ??? * @param unknown_type $var
    ??? * @return unknown
    ??? */
    ?????? function get($var) {
    ???????? $var = explode('.', $var);

    ???????? $result = $this->_settings;
    ???????? foreach ($var as $key) {
    ?????????????????? if (!isset($result[$key])) { return false; }

    ?????????????????? $result = $result[$key];
    ???????? }

    ???????? return $result;


    ??????? // trigger_error ('Not yet implemented', E_USER_ERROR);//引發一個錯誤
    ?????? }

    ?????? function load() {
    ??????????? trigger_error ('Not yet implemented', E_USER_ERROR);
    ?????? }


    }
    /**
    * 針對PHP的配置,如有配置文件
    * $file=
    <?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') . '';

    *
    */
    Class Settings_PHP Extends Settings {
    function load ($file) {
    ???????? if (file_exists($file) == false) { return false; }

    ???????? // Include file
    ???????? include ($file);
    unset($file);?? //銷毀指定變量
    $vars = get_defined_vars(); //返回所有已定義變量的列表,數組,變量包括服務器等相關變量,
    //通過foreach吧$file引入的變量給添加到$_settings這個成員數組中去.
    foreach ($vars as $key => $val) {
    ???????? if ($key == 'this') continue;

    ???????? $this->_settings[$key] = $val;
    }

    }

    ?

    }


    //////////////////////讀取INI文件,主要用到parser_ini_file函數,該函數返回一個數組,如第二個參數為true時則返回多維數組/////////////////////////////////////////
    /**
    * ini例子:
    * [db]
    name = test
    host = localhost
    調用例子:
    $settings = new Settings_INI;
    $settings->load('config.ini');
    echo 'INI: ' . $settings->get('db.host') . '';

    *
    */
    Class Settings_INI Extends Settings {
    function load ($file) {
    ???????? if (file_exists($file) == false) { return false; }
    ???????? $this->_settings = parse_ini_file ($file, true);
    }
    }

    //////////////////////讀取XML文件,需要用到XML_PARSER//////////////////////////////////////////////////////////
    /**
    * 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') . '';

    *
    */
    Class Settings_XML Extends Settings {
    function load ($file) {
    ?????? if (file_exists($file) == false) { return false; }

    ?????? /**xmllib.php為PHP XML Library, version 1.2b,相關連接:http://keithdevens.com/software/phpxml
    ?????? xmllib.php主要特點是把一個數組轉換成一個xml或吧xml轉換成一個數組
    ?????? XML_unserialize:把一個xml給轉換 成一個數組
    ?????? XML_serialize:把一個數組轉換成一個xml
    ?????? 自PHP5起,simpleXML就很不錯,但還是不支持將xml轉換成數組的功能,所以xmlLIB還是很不錯的.
    ?????? */
    ?????? include ('xmllib.php');?
    ?????? $xml = file_get_contents($file);
    ?????? $data = XML_unserialize($xml);
    ?????? $this->_settings = $data['settings'];
    }

    }
    //////////////////////////////////讀取YAML格式文件///////////////////////////////////////////////
    /**
    使用YAML必須使用到SPYC這個庫,相關鏈接在http://spyc.sourceforge.net/
    YAML配置例子:
    db:
    ?? name: test
    ?? host: localhost


    */
    Class Settings_YAML Extends Settings {
    function load ($file) {
    ?????? if (file_exists($file) == false) { return false; }

    ?????? include ('spyc.php');
    ?????? $this->_settings = Spyc::YAMLLoad($file);
    }

    }

    posted on 2007-12-23 23:49 -274°C 閱讀(12026) 評論(4)  編輯  收藏 所屬分類: PHP


    FeedBack:
    # re: PHP讀取4種配置文件(php,ini,yaml,xml)
    2008-05-17 19:46 | Happy漫步者
    可以借鑒下 不錯  回復  更多評論
      
    # re: PHP讀取4種配置文件(php,ini,yaml,xml)
    2012-11-12 14:42 | maosong
    用面向對象的方式包裝了一些函數,實際使用價值較低。  回復  更多評論
      
    # re: PHP讀取4種配置文件(php,ini,yaml,xml)
    2012-12-31 04:31 | 彭杰
    用了你的讀ini的方式 蠻好的,就是有個問題 我有個ini的字段內容是 xx|yy|zz讀出來變成了3 求指教。  回復  更多評論
      
    # re: PHP讀取4種配置文件(php,ini,yaml,xml)
    2013-01-05 00:02 | 彭杰
    sgtp=220.170.15.11
    讀出來的是 220.170.15.11

    sgtp='220.170.15.8|222.243.161.111'
    讀出來的是222  回復  更多評論
      

    常用鏈接

    留言簿(21)

    隨筆分類(265)

    隨筆檔案(242)

    相冊

    JAVA網站

    關注的Blog

    搜索

    •  

    積分與排名

    • 積分 - 914554
    • 排名 - 40

    最新評論

    主站蜘蛛池模板: 亚洲va久久久久| 亚洲精品动漫免费二区| 中文毛片无遮挡高清免费| 亚洲av片一区二区三区| 福利片免费一区二区三区| 国产免费变态视频网址网站| 亚洲狠狠婷婷综合久久蜜芽| 在线观看免费成人| 在线观看亚洲专区| 亚洲AV蜜桃永久无码精品| 国产黄色片免费看| 亚洲国产精品无码久久久秋霞2 | 亚洲精品无码久久久| www在线观看播放免费视频日本| 自拍偷自拍亚洲精品被多人伦好爽| 农村寡妇一级毛片免费看视频 | 亚洲Av永久无码精品三区在线| 高清一区二区三区免费视频| 噜噜噜亚洲色成人网站∨| a级毛片无码免费真人| 在线观看亚洲免费| 日韩亚洲人成在线综合日本| 3344免费播放观看视频| 亚洲中文字幕一区精品自拍| 亚洲不卡无码av中文字幕| 免费在线中文日本| 亚洲综合精品第一页| 亚洲午夜福利精品久久| 99久在线国内在线播放免费观看| 亚洲AV无码一区二区三区人| 国产高清在线精品免费软件| 国产免费牲交视频免费播放| 亚洲精品电影天堂网| 免费一级国产生活片| 一级毛片成人免费看免费不卡 | 暖暖免费中文在线日本| 91在线精品亚洲一区二区| 免费观看理论片毛片| 国产免费网站看v片在线| 亚洲色中文字幕在线播放| 亚洲精品无码久久一线|