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程序员最常犯的11个MySQL错误小结
Nov 20 PHP
php生成略缩图代码
Jul 16 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
PHP与Java进行通信的实现方法
Oct 21 PHP
怎样搭建PHP开发环境
Jul 28 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
Dec 17 PHP
php版微信返回用户text输入的方法
Nov 14 PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 PHP
php实现的错误处理封装类实例
Jun 20 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
Jun 17 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
BBS(php &amp; mysql)完整版(六)
2006/10/09 PHP
windows xp下安装pear
2006/12/02 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
PHP PDOStatement::columnCount讲解
2019/01/30 PHP
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
jQuery插件slides实现无缝轮播图特效
2015/04/17 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
[00:32]2018DOTA2亚洲邀请赛Secret出场
2018/04/03 DOTA
python判断windows系统是32位还是64位的方法
2015/05/11 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
NumPy 如何生成多维数组的方法
2018/02/05 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
python模块hashlib(加密服务)知识点讲解
2019/11/25 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
学生会竞选自荐信
2013/10/12 职场文书
中专毕业生自荐信范文
2013/11/28 职场文书
高二生物教学反思
2014/01/27 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
年终晚会活动方案
2014/08/21 职场文书
党员干部观看《周恩来四个昼夜》思想汇报
2014/09/10 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
公司2015年终工作总结
2015/05/26 职场文书
离婚协议书范文2016
2016/03/18 职场文书
Redis实现主从复制方式(Master&Slave)
2022/06/21 Redis
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers
windows系统安装配置nginx环境
2022/06/28 Servers