日期:2014-05-17  浏览次数:20447 次

php fopen 问题求助
templetest.php
PHP code

<?php
   $title     = "tst";
   $file        = "hehe";
   $fp       = fopen ("temp.html","r");
   $content  = fread ($fp,filesize ("temp.html"));
  // echo "读取的信息".$content."<br>";
   $content .= str_replace ("{file}",$file,$content);
   // echo $content;
   $content .= str_replace ("{title}",$title,$content);   
   $filename = "test.html";
   $handle    = fopen ($filename,"w"); //打开文件指针,创建文件
   /*
 检查文件是否被创建且可写
   */
   if (!is_writable ($filename)){
      die ("文件:".$filename."不可写,请检查其属性后重试!");
   }
   if (!fwrite ($handle,$content)){  //将信息写入文件
      die ("生成文件".$filename."失败!");
   } 
   fclose ($handle); //关闭指针   
   die ("创建文件".$filename."成功!");
?>



temp.html
PHP code
<HTML>
  <TITLE>{title}</TITLE>
  <BODY>
     {file}
  </BODY>
</HTML>


生成之后的界面
test.html
HTML code
<HTML>
  <TITLE>{title}</TITLE>
  <BODY>
     {file}
  </BODY>
</HTML>
<HTML>
  <TITLE>{title}</TITLE>
  <BODY>
     hehe
  </BODY>
</HTML>
<HTML>
  <TITLE>tst</TITLE>
  <BODY>
     {file}
  </BODY>
</HTML>
<HTML>
  <TITLE>tst</TITLE>
  <BODY>
     hehe
  </BODY>
</HTML>


尝试做文章静态化
问:为什么会出现这么多次、我只需要最后一次。。

------解决方案--------------------
$content = str_replace ("{file}",$file,$content);
// echo $content;
$content = str_replace ("{title}",$title,$content);

没有 . ,不然的话会把处理前后结果相连