本文章主要講述ini配置讀取時,由于php版本導(dǎo)致的問題。
簡單介紹
Yaf_Config_Ini允許開發(fā)者通過嵌套的對象屬性語法在應(yīng)用程序中用熟悉的INI格式存儲和讀取配置數(shù)據(jù)。 INI格式在提供擁有配置數(shù)據(jù)鍵的等級結(jié)構(gòu)和配置數(shù)據(jù)節(jié)之間的繼承能力方面具有專長宵距。 配置數(shù)據(jù)等級結(jié)構(gòu)通過用點或者句號(.)分離鍵值。 一個節(jié)可以擴展或者通過在節(jié)的名稱之后帶一個冒號(:)和被繼承的配置數(shù)據(jù)的節(jié)的名稱來從另一個節(jié)繼承携龟。
Yaf_Config_Ini利用PHP的函數(shù)parse_ini_file()來解析配置文件的兔跌。
遇到的問題
前端機根據(jù)配置文件寫入信息成功,Cron機讀取不到配置峡蟋。
原因分析
前端機和Cron機的版本不一致坟桅,前端機為5.4.X华望,而Cron機的版本還是5.2.X。
ini配置文件中的寫法為
# .ini文件 如foo.ini
key = 'just a test'
# 配置讀取
$foo = new Yaf_Config_ini("foo.ini");
$key = $foo->get("key");
echo $key;
#5.2.X 輸出 'just a test'
#5.4.X 輸出 just a test
版本5.4.X讀取到的配置文件key值為 just a test仅乓,而5.2.X讀取的配置文件key值為 'just a test'赖舟。
總結(jié)
簡單說就是PHP5.2將ini配置文件中的單引號(')當成普通字符處理。