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 相关文章推荐
PHP5 面向对象(学习记录)
Dec 02 PHP
PHP提取数据库内容中的图片地址并循环输出
Mar 21 PHP
PHP常用技巧总结(附函数代码)
Feb 04 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
Jan 26 PHP
ThinkPHP应用模式扩展详解
Jul 16 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
Jan 07 PHP
php显示时间常用方法小结
Jun 05 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
Dec 19 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
Laravel如何实现自动加载类
Oct 14 PHP
PHP的new static和new self的区别与使用
Nov 27 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 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
基于pear auth实现登录验证
2010/02/26 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
2013/12/24 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
JavaScript对Cookie进行读写操作实例
2015/07/25 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
基于JavaScript实现焦点图轮播效果
2017/03/27 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
使用3D引擎threeJS实现星空粒子移动效果
2020/09/13 Javascript
小程序实现自定义导航栏适配完美版
2019/04/02 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
[02:04]完美世界城市挑战赛秋季赛报名开始 谁是solo路人王?
2019/10/10 DOTA
Django 数据库同步操作技巧详解
2019/07/19 Python
python 默认参数相关知识详解
2019/09/18 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
前厅部经理岗位职责范文
2014/02/04 职场文书
个人现实表现材料
2014/02/04 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
客服专员岗位职责
2014/02/28 职场文书
中学校庆方案
2014/03/17 职场文书
党员个人剖析材料(四风问题)
2014/10/07 职场文书
英文邀请函
2015/02/02 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
家电创业计划书
2019/08/05 职场文书
解决golang结构体tag编译错误的问题
2021/05/02 Golang