PHP解析包含变量的ini文件

时间:2014-06-17 14:34:34

标签: php ini

我尝试在.ini文件中存储不同的语言。

language_en.ini:

HELLO_MSG = "Hello $user ! How are you ?"

php文件

$user = "Mike";
$ini_array = parse_ini_file("language_en.ini");
echo $ini_array['HELLO_MSG'];

输出

Hello Mike ! How are you ?

是否可以使用我在ini文件中设置的$ user变量,或者如果我使用“parse_ini_file”方法读入.ini文件,则只获取带字符串的数组。

1 个答案:

答案 0 :(得分:3)

无论如何,你不应该依赖变量插值。您没有在此文件中定义变量$user,您如何期望在任何点插值?在解析ini文件之前,您会定义所有可能的变量吗?那太乱了!

标准解决方案是sprintf

$hello = "Hello %s! How are you?";
$message = sprintf($hello, $user);
echo $message;

此外,您尝试重新发明的内容似乎是gettext用于本地化。阅读this以了解您为什么需要像gettext这样的现有系统,而不是ini文件。