php生成静态文件的多种方法分享


Posted in PHP onJuly 17, 2012

第一种:将php动态页面内容生成静态

ob_start();#开启服务器缓存 
include_once 'Index.php'; 
$ctx=ob_get_contents();#获取缓存 
ob_end_clean();#清空缓存 
$fh=fopen("index.html","w+"); 
fwrite($fh,$ctx);#写入html,生成html 
fclose($fh); 
/* 
1、Flush:刷新缓冲区的内容,输出。 
函数格式:flush() 
说明:这个函数经常使用,效率很高。 
2、ob_start :打开输出缓冲区 
函数格式:void ob_start(void) 
说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。 
3 、ob_get_contents :返回内部缓冲区的内容。 
使用 
函数格式:string ob_get_contents(void) 
说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。 
4、ob_get_length:返回内部缓冲区的长度。 
使用方法:int ob_get_length(void) 
说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。 
5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。 
使用方法:void ob_end_flush(void) 
说明:这个函数发送输出缓冲区的内容(如果有的话)。 
6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区 
使用方法:void ob_end_clean(void) 
说明:这个函数不会输出内部缓冲区的内容而是把它删除! 
7、ob_implicit_flush:打开或关闭绝对刷新 
使用方法:void ob_implicit_flush ([int flag]) 
*/

第二种:
php 静态文件生成类(自家用)
<?php 
class CreateHtml 
{ 
function mkdir( $prefix= 'article' ) 
{ 
$y = date('Y'); 
$m = date('m'); 
$d = date('d'); 
$p=DIRECTORY_SEPARATOR; 
$filePath='article'.$p.$y.$p.$m.$p.$d; 
$a=explode($p,$filePath); 
foreach ( $a as $dir) 
{ 
$path.=$dir.$p; 
if(!is_dir($path)) 
{ 
//echo '没有这个目录'.$path; 
mkdir($path,0755); 
} 
} 
return $filePath.$p; 
} 
function start() 
{ 
ob_start(); 
} 
function end() 
{ 
$info = ob_get_contents(); 
$fileId = '12345'; 
$postfix = '.html'; 
$path = $this->mkdir($prefix= 'article'); 
$fileName = time().'_'.$fileId.$postfix; 
$file=fopen($path.$fileName,'w+'); 
fwrite($file,$info); 
fclose($file); 
ob_end_flush(); 
} 
} 
?> 
<?php 
$s=new CreateHtml(); 
$s->start(); 
?> 
<html> 
<body> 
asdfasdfasdfasdfasdfasdfasdfasdfasdf<br> 
adfasdfasdf<br> 
</body>> 
</html> 
<?php 
$s->end(); 
?>
PHP 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
MySQL数据源表结构图示
Jun 05 PHP
PHP排序之二维数组的按照字母排序实现代码
Aug 13 PHP
php模板原理讲解
Nov 13 PHP
Codeigniter操作数据库表的优化写法总结
Jun 12 PHP
微信公众平台消息接口校验与消息接口响应实例
Dec 23 PHP
PHP使用socket发送HTTP请求的方法
Feb 14 PHP
PHP模拟http请求的方法详解
Nov 09 PHP
thinkPHP5.0框架独立配置与动态配置方法
Mar 17 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
PHP PDOStatement::columnCount讲解
Jan 30 PHP
thinkphp5.1框架模板布局与模板继承用法分析
Jul 19 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
Jul 16 #PHP
php生成略缩图代码
Jul 16 #PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
Jul 16 #PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
Jul 15 #PHP
在项目中寻找代码的坏命名
Jul 14 #PHP
注册页面之前先验证用户名是否存在的php代码
Jul 14 #PHP
php学习之function的用法
Jul 14 #PHP
You might like
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
php判断linux下程序问题实例
2015/07/09 PHP
开启PHP的伪静态模式
2015/12/31 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
2019/05/06 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
分享一个常用的javascript静态类
2014/12/31 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
2015/03/02 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
javascript之分片上传,断点续传的实际项目实现详解
2019/09/05 Javascript
微信小程序转发事件实现解析
2019/10/22 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
python中bisect模块用法实例
2014/09/25 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
python打开文件的方式有哪些
2020/06/29 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
新西兰最大的在线设计师眼镜店:SmartBuyGlasses新西兰
2017/10/20 全球购物
PHP开发的一般流程
2013/08/13 面试题
EJB3.1都有哪些改进
2012/11/17 面试题
MYSQL支持事务吗
2013/08/09 面试题
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
校园文化建设方案
2014/02/03 职场文书
国际贸易求职信
2014/07/05 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
Mysql排序的特性详情
2021/11/01 MySQL
Python中如何处理常见报错
2022/01/18 Python