我是一名新手编码器,试图使用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则不会。
非常感谢任何帮助!
答案 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解析它,则需要include
或require
。
但听起来你正试图为你的电子邮件写一个模板系统。如果这就是你正在做的事情,你最好不要将它作为PHP代码进行解析,而是在其中包含占位符标记,然后使用str_replace()
或类似函数从主数据中注入变量编入字符串。
希望有所帮助。
答案 2 :(得分:0)
使用http://php.net/manual/en/function.sprintf.php在代码中放置%s而不是读取内容的变量,并将字符串放入sprintf中,并使用您想要放置的变量。希望这会有所帮助。