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 相关文章推荐
基于PHP与XML的PDF文档生成技术
Oct 09 PHP
在php中取得image按钮传递的name值
Oct 09 PHP
NO3第三帝国留言簿制作过程
Oct 09 PHP
APMServ使用说明
Oct 23 PHP
批量获取memcache值并按key的顺序返回的实现代码
Jun 14 PHP
PHP与SQL注入攻击防范小技巧
Sep 16 PHP
检查php文件中是否含有bom的函数
May 31 PHP
php安装swoole扩展的方法
Mar 19 PHP
php实现插入数组但不影响原有顺序的方法
Mar 27 PHP
php把大写命名转换成下划线分割命名
Apr 27 PHP
详解Yii2 之 生成 URL 的方法
Jun 16 PHP
PHP+jQuery实现即点即改功能示例
Feb 21 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中多进程编程的相关函数的使用
2015/08/18 PHP
laravel自定义分页的实现案例offset()和limit()
2019/10/15 PHP
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
使用ajax+jqtransform实现动态加载select
2014/12/01 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
Vue.js添加组件操作示例
2018/06/13 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
JQuery常见节点操作实例分析
2019/05/15 jQuery
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
原生js实现分页效果
2020/09/23 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
Python 获取当前所在目录的方法详解
2017/08/02 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
python实现将列表中各个值快速赋值给多个变量
2020/04/02 Python
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
html5模拟平抛运动(模拟小球平抛运动过程)
2013/07/25 HTML / CSS
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
财务人员个人求职信范文
2013/12/04 职场文书
教育专业自荐书范文
2013/12/17 职场文书
材料加工工程求职信
2014/02/19 职场文书
培训专员岗位职责
2014/02/26 职场文书
英文求职信范文
2014/05/23 职场文书
班级管理经验交流材料
2015/11/02 职场文书