dsirr48088 2011-12-31 19:35
浏览 279
已采纳

PHP使用HTML模板

I am having trouble reading in a file and using it as a template in PHP. A portion of my code is pasted below. For some reason it never finds $$USER_NAME$$ in the string so it never replaces. I also pasted the beginning part of my template below.

$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);

Template:

<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>...

Any ideas about why it wouldn't find $$USER_NAME$$ in the template?

  • 写回答

6条回答 默认 最新

  • duanmi3476 2011-12-31 19:38
    关注

    Try with single quotes:

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

    otherwise the $ signs get interpreted by PHP (just try to do echo "$$USER_NAME$$" to understand that PHP will interpret it as echo $$USER_NAME."$$" or something similar).

    You can as well resolve the problem by escaping the $ if you still want to use double quotes:

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

    Check the PHP manual page on Strings to know what are the differences between single quoted and double quoted strings in PHP.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 微信小游戏反编译后,出现找不到分包的情况
  • ¥15 如何实现从tello无人机上获取实时传输的视频流,然后将获取的视频通过yolov5进行检测
  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥15 LCD12864中文显示