2014-06-17 43 views
0

我尝试在.ini文件中存储不同的语言。PHP解析包含变量的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文件中设置$用户变量或做如果我使用“parse_ini_file”方法读入.ini文件,只需要一个带有字符串的数组。

回答

3

不管怎样,你不应该依靠变量插值。你没有在这个文件中定义一个变量$user,你怎么能期望它在任何时候被内插?你会在解析ini文件之前定义所有可能的变量吗?这是一团糟!

标准的解决方案,这是sprintf

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

此外,您似乎试图在这里重塑是什么gettext本地化。请阅读this以了解为什么要使用像gettext这样的现有系统,而不是ini文件。

+0

哦,太棒了,“sprintf”是我寻找的解决方案! – inf3ction