<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

    最新評論

    主站蜘蛛池模板: 亚洲欧美日韩综合俺去了| 天天干在线免费视频| 高潮毛片无遮挡高清免费视频| 亚洲精品日韩专区silk| 亚洲色婷婷六月亚洲婷婷6月| 在线永久免费观看黄网站| 无码乱肉视频免费大全合集| 久久免费国产视频| 国产精品免费看久久久香蕉| 爱情岛亚洲论坛在线观看| 亚洲中文字幕无码av| 久久精品国产99国产精品亚洲| 91久久亚洲国产成人精品性色| 久久丫精品国产亚洲av不卡| 亚洲福利视频一区二区| 毛片大全免费观看| 免费v片在线观看视频网站| 久久青草国产免费观看| a毛片全部免费播放| www免费插插视频| 成人a毛片视频免费看| 猫咪免费人成网站在线观看入口| 性色av极品无码专区亚洲 | 77777午夜亚洲| 亚洲国产精品久久人人爱| 久久综合亚洲鲁鲁五月天| 婷婷亚洲综合五月天小说 | 人人揉揉香蕉大免费不卡| 在线观看免费视频一区| 在线免费观看伊人三级电影| 免费毛片在线看不用播放器 | 亚洲精品无码国产| 亚洲人成色777777在线观看| 国产亚洲无线码一区二区| 亚洲av无码一区二区三区不卡| 亚洲成a人片在线观看无码| 亚洲天堂中文字幕| 亚洲免费在线观看视频| 亚洲最大无码中文字幕| 日韩色日韩视频亚洲网站| 一级毛片高清免费播放|