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 相关文章推荐
对盗链说再见...
Oct 09 PHP
分享PHP入门的学习方法
Jan 02 PHP
c#中的实现php中的preg_replace
Dec 21 PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
Jul 04 PHP
php简单统计字符串单词数量的方法
Jun 19 PHP
WordPress中获取指定分类及其子分类下的文章数目
Dec 31 PHP
Yii+upload实现AJAX上传图片的方法
Jul 13 PHP
微信JSSDK分享功能图文实例详解
Apr 08 PHP
php面向对象程序设计入门教程
Jun 22 PHP
thinkPHP事务操作简单案例分析
Oct 17 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 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
德生PL330的评价与改造
2021/03/02 无线电
一个简单的MySQL数据浏览器
2006/10/09 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
PHP内置加密函数详解
2016/11/20 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
jQuery 1.0.2
2006/10/11 Javascript
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
Nodejs学习笔记之Global Objects全局对象
2015/01/13 NodeJs
javascript实现随机生成DIV背景色
2016/06/20 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
使vue实现jQuery调用的两种方法
2019/05/12 jQuery
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
python 字典(dict)按键和值排序
2016/06/28 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
flask-restful使用总结
2018/12/04 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
python属于解释型语言么
2020/06/15 Python
Python实现淘宝秒杀功能的示例代码
2021/01/19 Python
精伦电子Java笔试题
2013/01/16 面试题
.NET初级开发工程师面试题
2014/04/18 面试题
电信专业应届生自荐信
2013/09/28 职场文书
测绘工程个人的自我评价
2013/11/10 职场文书
中文专业毕业生自荐书范文
2014/01/04 职场文书
成考报名单位证明范本
2014/01/16 职场文书
股东大会通知
2015/04/24 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
幼儿园教师教育随笔
2015/08/14 职场文书
《刷子李》教学反思
2016/02/20 职场文书
如何优化vue打包文件过大
2022/04/13 Vue.js