2010-08-24 132 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

相關問題