【问题标题】:Pass variable to string in include file - PHP将变量传递给包含文件中的字符串 - PHP
【发布时间】:2011-04-03 06:25:21
【问题描述】:

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

这是一个例子:

这里是index.php页面的sn-p:

<?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 变量始终为空,我认为这是因为它正在从包含页面而不是索引页面中查找 $email 变量。有没有办法解决这个问题?

【问题讨论】:

    标签: php string variables include


    【解决方案1】:

    使用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));
    ?>
    

    【讨论】:

    • 我认为您的意思是urlencode,因为$email 变量将进入一个url。?但除此之外,+1
    • 已更改。 @亚历山大,是的。 $email 没有在语言文件中定义,而是在索引中。
    【解决方案2】:

    我已经测试过了。都好。可能是,您忘记分配 $email。

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

    【讨论】:

    • 你把事情搞混了。有一个单独的语言文件不应该引用索引中的变量。在索引中分配值之前包含语言文件。
    • 大声笑。 $email 不在索引中。 4电子邮件包含在文件中。
    • 它引用了包含文件中的 $email,但它不应该那样做。
    猜你喜欢
    • 2021-10-04
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    相关资源
    最近更新 更多