1

我是一名新手编码员,试图使用 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 变量会显示在结果页面上,但如果我回显 $body 则不会。

任何帮助将非常感激!

4

3 回答 3

5

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

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

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

于 2012-07-27T19:27:22.493 回答
1

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

如果你想让它被 PHP 解析,你需要includeorrequire它。

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

希望有帮助。

于 2012-07-27T19:35:28.077 回答
0

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

于 2012-07-27T19:36:16.470 回答