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 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。