无法将PHP变量传递给file_get_contents()

时间:2012-07-27 19:25:34

标签: php html

我是一名新手编码器,试图使用PHP构建一个简单的Web应用程序。我正在尝试发送一封HTML电子邮件,其中包含一个每次发送时都会更改的变量。启动电子邮件的代码是“email.php”,其中包含:

$body = file_get_contents('welcome/green2.html.php');

在'green2.html.php'文件中,我有一个名为$ highlight的变量,需要填充。 $ highlight变量在'email.php'文件中定义。我曾试图在'green2.html.php'文件中添加,但它没有被解析。我得到一个空格,输出时变量应该是空格。

另外,我在'email.php'文件中添加了'welcome / green2.html.php'。当我回显它时,$ highlight var显示在结果页面上,但如果我回显$ body则不会。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:5)

您是否尝试过str_replace函数? http://php.net/manual/en/function.str-replace.php

在HTML中添加占位符(例如#name#表示名称,#email#表示电子邮件),然后在加载文件内容后使用字符串替换功能。

$bodytag = str_replace("#name#", $name, $myfile);

答案 1 :(得分:1)

通过file_get_contents()加载文件不会导致PHP解析它。它只是作为静态文件加载,无论它是否包含PHP代码。

如果您希望PHP解析它,则需要includerequire

但听起来你正试图为你的电子邮件写一个模板系统。如果这就是你正在做的事情,你最好不要将它作为PHP代码进行解析,而是在其中包含占位符标记,然后使用str_replace()或类似函数从主数据中注入变量编入字符串。

希望有所帮助。

答案 2 :(得分:0)

使用http://php.net/manual/en/function.sprintf.php在代码中放置%s而不是读取内容的变量,并将字符串放入sprintf中,并使用您想要放置的变量。希望这会有所帮助。