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代码)作为返回的字符串。

用include()和ob_get_contents( )方法 生成静态文件的更多相关文章

  1. ASP专栏——ASP生成静态文件(用于大量文章)

    对于Web开发人员来说,生成静态文件这个概念并不陌生. 对于Web开发来说,如何能避免客户端访问时不停的查询数据库?现在比较常用的有两种方法,一种是使用缓存技术,将查询出来的结果缓存至缓存框架中,以后 ...

  2. phpcms V9 修改生成静态文件路径/html

    在论坛看到部分用户反馈这个问题,要修改的其实是html_root的值,默认是"/html"如果要生成在网站根目录的话,这个值则要为空.论坛上现在看到的办法是打开caches\con ...

  3. 将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件

      将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件import java.io.File;import java.io.FileOutputStre ...

  4. [js高手之路]Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件

    接着这篇文章[js高手之路]Node.js+jade抓取博客所有文章生成静态html文件继续,在这篇文章中实现了采集与静态文件的生成,在实际的采集项目中, 应该是先入库再选择性的生成静态文件.那么我选 ...

  5. 三:理解Page类的运行机制(例:在render方法中生成静态文件)

    我这里只写几个常用的事件1.OnPreInit:此事件后将加载个性化信息和主题2.OnInit:初始化页面中服务器控件的默认值但控件的状态没有加载,没有创建控件树3.OnPreLoad:控件完成状态和 ...

  6. php生成静态文件

    1,通用生成方法 //获取文件内容 $content=file_get_contents("http://www.google.com/" ); $id=110; $filenam ...

  7. apidoc快速生成在线文档,apidoc生成静态文件的生成规则以及原理分析

    在老大的指引下,需要将系统的json文件格式转换成apidoc的json格式,也就是json格式的重组,但是这个apidoc的生成格式是不固定的,因为apidoc有自己一套的生成规则,我需要研究一下是 ...

  8. nginx tar.gz安装方法+简单静态文件配置

    1.首先安装依赖包(依赖包有点多,我们采用yum的方式来安装) yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel ...

  9. ASP生成静态文件编码为UTF-8格式的HTML文件

    一般在ASP环境下,运行动生静操作时都用到的是FSO,FSO是专门对文件进行操作的一个组件,FSO的编码属性只有三种,系统默认,Unicode,ASCII,并没有utf-8,所以一般中文系统上使用FS ...

随机推荐

  1. vim中使用gdb。

    引用文章A:http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-vimgdb/ 引用介绍:使用vimgdb来完成gdb的嵌入. 需要的 ...

  2. nginx+webpy 出现 upstream timed out

    关于nginx配置webpy应用出现的错误 upstream timed out (: Connection timed out) while reading response header from ...

  3. Zend Framework 框架搭建

    通过手工方法搭建Zend Framework的MVC框架结构.首先看一下zend framework mvc的目录结构 1. 在根目录下面创建 public ,并在 public 下创建 index. ...

  4. Entity Framewor中的 Migration

    http://www.entityframeworktutorial.net/code-first/code-based-migration-in-code-first.aspx = Code bas ...

  5. 由EmbeddedFileProvider构建的内嵌(资源)文件系统

    由EmbeddedFileProvider构建的内嵌(资源)文件系统 一个物理文件可以直接作为资源内嵌到编译生成的程序集中.借助于EmbeddedFileProvider,我们可以统一的编程方式来读取 ...

  6. Java连接Azure SQL Database

    Azure SQL Database是Azure上的数据库PAAS服务,让用户可以快速的创建和使用SQL数据库而不用担心底层的备份,安全,运维,恢复等繁琐的工作,本文简单介绍如何使用Java程序连接到 ...

  7. GNU所有软件下载,其中最有意思的是octave

    http://ftp.gnu.org/gnu/ 最有意思的是octave:https://www.gnu.org/software/octave/http://ftp.gnu.org/gnu/octa ...

  8. entity framework如何控制并发

     entity framework如何控制并发 针对字段http://msdn.microsoft.com/en-us/library/vstudio/bb738618(v=vs.100).aspx ...

  9. poj1163 dp入门

    The Triangle Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 36811   Accepted: 22048 De ...

  10. poj 2425 A Chess Game_sg函数

    题意:给你一个有向无环图,再给你图上的棋子,每人每次只能移动一个棋子,当轮到你不能移动棋子是就输了,棋子可以同时在一个点 比赛时就差这题没ak,做了几天博弈终于搞懂了. #include <io ...