• 用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代码)作为返回的字符串。
  • 相关阅读:
    MVC MVP MVVM三者的区别
    有状态组件 和 无状态组件的区别
    判断数据类型的几种方法
    bind的使用
    新时代web组件开发标准
    node.js上传文件
    封装的组件
    mysql数据库比较,各数据库不同之处
    node.js中使用Redis
    centos下安装nodejs的三种种方式
  • 原文地址:https://www.cnblogs.com/xs-yqz/p/4957485.html
Copyright © 2020-2023  润新知