zoukankan      html  css  js  c++  java
  • 用include()和ob_get_contents( )方法 生成静态文件

         1. 生成静态文件可以在打开缓冲区的前提下,用include()方法去包含要执行的动态文件,这样该动态文件就会在缓冲区中执行,执行完毕后的静态HTML代码就保存在缓冲区中,然后用ob_get_contents()方法去获取缓冲区中的内容,(注意:在获取缓冲区内容的前提是一定要打开缓冲区ob_start();),将这些内容保存到一个字符串中,再将该字符串写入到文件中即可。

    <?php 
    header("Content-type: text/html; charset=UTF-8"); 
     ob_start();//打开缓冲区
     include("admin.php");//包含php文件admin.php
     $str = ob_get_contents();//获取php文件里面的内容
     $fp = fopen("admin.html", "w");//创建tt.html静态文件
     fwrite($fp, $str);//将字符串$str写入tt.html中,tt.html 即为静态页文件
     ob_end_clean();//清空缓冲区内容并关闭缓冲区
     echo "success";
    ?>

       2.生成静态首页文件

    为了方便生成静态页面,可以把生成静态页面的代码写入到一个函数中,createhtml()中,该函数接受两个参数:$sourcePage 是将执行的动态文件URL地址,$targetPage是生成的静态文件的文件名。

     <?php
     header("Content-type: text/html; charset=UTF-8"); 
     function createhtml ($sourcePage,$targetPage){
         ob_start();
         $str = file_get_contents($sourcePage);
         $fp = fopen($targetPage, "w")or die("打开文件".$targetPage."出错");
         fwrite($fp, $str);    //将字符串$str 写入目标文件中
         ob_end_clean();       //清空缓存区内容并且关闭缓冲区
         echo "success";
         fclose($fp);
     }
     createhtml("http://localhost/php/news/admin.php","index1.html");
    ?>
       file_get_contents(string $url)函数 ,如果该文件是动态网页文件,该参数必须是绝对URL地址,如不是相对URL地址。因为要执行一个动态网页文件,只能在浏览器地址栏中输入该文件的绝对URL,而不能输入相对的URL,否则该函数会把php文件的源代码(而不是执行后生成的HTML代码)作为返回的字符串。
  • 相关阅读:
    struts2+jpa+spring 泛型版小结
    PasswordEncoder
    父窗口 子窗口
    Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM)
    js 正则表达式
    <aop:config>
    CJDBC
    struts2取值
    mysql启动错误1067的解决
    杂碎
  • 原文地址:https://www.cnblogs.com/xs-yqz/p/4957485.html
Copyright © 2011-2022 走看看