2010-08-24 82 views
1

我想要做的是在一个字符串中使用泛化语言的包含文件,该字符串将用于多个页面,但我还需要将变量传递给字符串当前页面。将变量传递给包含文件中的字符串 - PHP

下面是一个例子:

这里是index.php页面的一个片段:

<?PHP 
require_once($_SERVER['DOCUMENT_ROOT'].'/lib/prefix.php'); 

echo $GENERAL_STRINGS['user_not_found']; 
?> 

这里是包括页:

<?PHP 
$GENERAL_STRINGS['user_not_found'] = 'User account not found<br /><a href="/register/?email='.$email.'">Register Today for FREE</a>'; 
?> 

的$电子邮件变量始终是链接被引用时为空,我认为这是因为它正在从包含页面而不是索引页面寻找$ email变量。有没有解决的办法?

回答

3

使用printf()sprintf()

<?php 
$GENERAL_STRINGS['user_not_found'] = 'User account not found<br /><a href="/register/?email=%s">Register Today for FREE</a>'; 
?> 

使用它以这种方式:

<?php 
printf($GENERAL_STRINGS['user_not_found'], urlencode($email)); 
?> 
+0

我想你是指'urlencode',因为'$ email'变量正在进入一个url。但除此之外,+1 – ircmaxell 2010-08-24 15:57:52

+0

问题不在其中。 – pltvs 2010-08-24 16:00:01

+0

@Alex你怎么知道的? – NullUserException 2010-08-24 16:01:20

0

我测试。都好。可能是,你忘了分配$ email。

<?PHP 
$email = '[email protected]'; 
$GENERAL_STRINGS['user_not_found'] = 'User account not found<br /><a href="/register/?email='.$email.'">Register Today for FREE</a>'; 
?> 
+0

你在混合物。有一个单独的语言文件,不应该引用索引中的变量。 在索引中分配值之前包含语言文件。 – Lekensteyn 2010-08-24 16:04:28

+0

大声笑。 $电子邮件不在索引中。邮件包含文件。 – pltvs 2010-08-24 16:13:04

+0

它在包含文件中接受$ email,但它不应该这样做。 – Lekensteyn 2010-08-24 16:17:12

相关问题