我有一个配置文件,它接受如下文本警告:
warnings.1 = Please check the date
这些以HTML格式呈现给用户。我需要嵌入如下的超链接:
warnings.1 = <a href="http://foo.com/!FOO!/">check with foo</a>
我不能为我的生活找出如何逃避这一点,以便parse_ini_file()可以读取它并以我想要的方式获取该字符串。
答案 0 :(得分:1)
http://php.net/manual/en/function.parse-ini-file.php:
array parse_ini_file(string $filename [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL]])
scanner_mode:
可以是INI_SCANNER_NORMAL(默认)或INI_SCANNER_RAW。如果提供了INI_SCANNER_RAW,则不会解析选项值。
更新日志: 5.3.0添加了可选的scanner_mode参数。
如果你没有参加5.3,那你就搞砸了。或者您需要使用不同的实现,parse_ini_file不是PHP的唯一INI文件解析器。
答案 1 :(得分:0)
答案 2 :(得分:0)
我最终切换到Zend_Config_Xml,因为对于我们的开发人员来说,如何逃避数据比尝试解决稍微奇怪的.ini语法要清楚得多。
感谢所有人的回答。
答案 3 :(得分:0)
我最近遇到了一个类似的场景,经过一番思考后我得出的结论是问题不在于使用的函数或类,而在于使用本身。参数值,例如
<a href="http://foo.com/!FOO!/">check with foo</a>
可以更好地实现,只有href
的值是参数的值。例如:
warnings.1.href = "http://foo.com/!FOO!/"
warnings.1.text = "check with foo"
这是因为参数值应该只包含绑定要更改的值(从实例到实例)。在您的情况下,锚标签最好留在html本身,而不是.ini
配置文件中。这不仅可以使您的配置文件保持轻量级,而且还可以保持其清洁,因为HTML代码应该在HTML中,而配置文件中的配置值也应该分开。
所以是的,没有必要切换PHP版本或向parse_ini_file
函数添加参数(因为这样做会对Zend_Config_Ini类进行破解,如果需要,最好将其作为官方补丁)。