<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 閱讀(12024) 評論(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

    搜索

    •  

    積分與排名

    • 積分 - 914354
    • 排名 - 40

    最新評論

    主站蜘蛛池模板: 亚洲精品久久无码av片俺去也| 亚洲精品亚洲人成在线观看麻豆 | 日韩免费高清播放器| 免费h成人黄漫画嘿咻破解版| 亚洲国产精品18久久久久久| 成年女人毛片免费播放人| 亚洲中文字幕精品久久| 精品国产一区二区三区免费看| 亚洲人成人网站18禁| 好爽好紧好大的免费视频国产| 久久无码av亚洲精品色午夜 | 亚洲精品综合在线影院| 女人张开腿给人桶免费视频 | 久久99亚洲综合精品首页 | av无码国产在线看免费网站| 亚洲国产综合在线| aa级一级天堂片免费观看| 亚洲愉拍一区二区三区| 日韩免费一区二区三区| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 久久精品国产精品亚洲色婷婷| 免费视频一区二区| 亚洲国产夜色在线观看| 久久精品夜色国产亚洲av| 无码专区AAAAAA免费视频| 亚洲精品视频在线免费| 无人在线观看完整免费版视频 | 亚洲欧洲校园自拍都市| 成年女人午夜毛片免费视频| 色视频在线观看免费| 人人狠狠综合久久亚洲婷婷| 久草视频免费在线| 猫咪免费人成在线网站| 亚洲成人中文字幕| 全免费一级毛片在线播放| 一个人看的www在线免费视频 | 曰韩亚洲av人人夜夜澡人人爽 | 久久国产免费一区| 亚洲av成人一区二区三区观看在线 | 亚洲精品视频免费| 人人爽人人爽人人片A免费 |