PHP 使用 HTML 模板

标签 php

我无法读取文件并将其用作 PHP 中的模板。下面粘贴了我的部分代码。由于某种原因,它永远不会在字符串中找到 $$USER_NAME$$,因此它永远不会替换。我还在下面粘贴了模板的开头部分。

$filename = "email/templates/welcome.txt";
$file = fopen($filename, "r")   
$body = fread($file, filesize($filename));
fclose($file);
$body = str_replace("$$USER_NAME$$", "John Doe", $body);
print($body);

模板:

<p>
   <img src="emailPic" alt="Logo" />
</p>
<p>Dear $$USER_NAME$$,</p>
<p>Thank you for registering to attend $$EVENT_NAME$$. We look forward to helping you reach your networking goals at $$EVENT_SHORT_NAME$$.
</p>...

关于为什么在模板中找不到 $$USER_NAME$$ 有什么想法吗?

最佳答案

尝试使用单引号:

$body = str_replace('$$USER_NAME$$', 'John Doe', $body);

否则 $ 符号会被 PHP 解释(只需尝试执行 echo "$$USER_NAME$$" 以了解 PHP 会将其解释为 echo $$USER_NAME."$$" 或类似的东西)。

如果您仍想使用双引号,也可以通过转义 $ 来解决问题:

$body = str_replace("\$\$USER_NAME\$\$", "John Doe", $body);

检查 PHP manual page on Strings了解 PHP 中单引号双引号 字符串之间的区别。

关于PHP 使用 HTML 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8690137/

相关文章:

php - 为什么我的 textarea 文本没有按预期显示/隐藏?

php - 使用PHP上传文件到oracle云存储

php - 有没有办法压缩值经常重复的 MySQL 列?

php - 在循环中或不在循环中实例化一个新类?

PHP - 无法关联结果并在 MYSQL 中获取它们

php - 使用全选选项创建复选框表

PHP显示名称相同的最后一个数据

php - Zend db - 我什么时候应该引用以避免 sql 注入(inject)?

php - MySQL 行已插入但未保存?

php - Laravel中的错误处理