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 session常见问题集锦及解决办法总结
Mar 18 PHP
PHP高级对象构建 多个构造函数的使用
Feb 05 PHP
介绍一些PHP判断变量的函数
Apr 24 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
PHP实现简单数字分页效果
Jul 26 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
使用JavaScript创建新样式表和新样式规则
Jun 14 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
CentOS 上搭建 PHP7 开发测试环境
Feb 26 PHP
php实现购物车产品删除功能(2)
Jul 23 PHP
PHP 断点续传实例详解
Nov 11 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
Oct 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
PHP生成带有雪花背景的验证码
2006/10/09 PHP
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
php curl模拟post提交数据示例
2013/12/31 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
PHP设计模式之原型设计模式原理与用法分析
2018/04/25 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
JS下载文件|无刷新下载文件示例代码
2014/04/17 Javascript
node.js开机自启动脚本文件
2014/12/24 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
全面了解js中的script标签
2016/07/04 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
详解js的六大数据类型
2016/12/27 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题
2017/11/22 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
wxpython 学习笔记 第一天
2009/02/09 Python
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
python requests post多层字典的方法
2018/12/27 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
python 实现关联规则算法Apriori的示例
2020/09/30 Python
光声世纪笔试题目
2012/08/25 面试题
农村党建工作汇报材料
2014/10/27 职场文书
法定代表人资格证明书
2015/06/18 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python