本文章主要讲述ini配置读取时,由于php版本导致的问题。
简单介绍
Yaf_Config_Ini允许开发者通过嵌套的对象属性语法在应用程序中用熟悉的INI格式存储和读取配置数据。 INI格式在提供拥有配置数据键的等级结构和配置数据节之间的继承能力方面具有专长。 配置数据等级结构通过用点或者句号(.)分离键值。 一个节可以扩展或者通过在节的名称之后带一个冒号(:)和被继承的配置数据的节的名称来从另一个节继承。
Yaf_Config_Ini利用PHP的函数parse_ini_file()来解析配置文件的。
遇到的问题
前端机根据配置文件写入信息成功,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'。
总结
简单说就是PHP5.2将ini配置文件中的单引号(')当成普通字符处理。
网友评论