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 安装方法
Oct 09 PHP
php4的session功能评述(二)
Oct 09 PHP
pdo中使用参数化查询sql
Aug 11 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
浅析php适配器模式(Adapter)
Nov 25 PHP
php类的扩展和继承用法实例
Jun 20 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
May 04 PHP
PHP hex2bin()函数用法讲解
Feb 25 PHP
Yii框架页面渲染操作实例详解
Jul 19 PHP
php文件后缀不强制为.php的实操方法
Sep 18 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
Apr 26 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
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
咖啡的植物学知识
2021/03/03 咖啡文化
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
jQuery中trigger()与bind()用法分析
2015/12/18 Javascript
Fullpage.js固定导航栏-实现定位导航栏
2016/03/17 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
vue中实现在外部调用methods的方法(推荐)
2018/02/08 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
详解vue或uni-app的跨域问题解决方案
2020/02/21 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
详解Python的Lambda函数与排序
2016/10/25 Python
python中hashlib模块用法示例
2017/10/30 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
瀑布模型都有哪些优缺点
2014/06/23 面试题
推荐信格式范文
2014/05/09 职场文书
2016国庆促销广告语
2016/01/28 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书