php生成静态文件的多种方法分享

2015-01-24信息快讯网

最近需要将自己写的php文件生成静态,经过查找,发现有多种方法,不同需求可以选择不同的方法

第一种:将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中var_dump,var_export,print_r三个函数的区别
基于PHP文件操作的详细诠释
解析php安全性问题中的:Null 字符问题
浅析SVN常见问题及解决方法
关于svn冲突的解决方法
关于PHP模板Smarty的初级使用方法以及心得分享
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
解析PHP将对象转换成数组的方法(兼容多维数组类型)
解析zend studio中直接导入svn中的项目的方法步骤
基于PHP服务端图片生成缩略图的方法详解
解析PHP生成静态html文件的三种方法
解析htaccess伪静态的规则
php生成zip压缩文件的方法详解
如何用php生成扭曲及旋转的验证码图片
探讨PHP中OO之静态关键字以及类常量的详解
PHP之生成GIF动画的实现方法
基于PHP生成静态页的实现方法
基于PHP静态类的原罪详解
采集邮箱的php代码(抓取网页中的邮箱地址)
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
php生成略缩图代码
ThinkPHP 连接Oracle数据库的详细教程[全]
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
注册页面之前先验证用户名是否存在的php代码
php 操作调试的方法
php长字符串定义方法
PHP中防止直接访问或查看或下载config.php文件的方法
PHP取整数函数常用的四种方法小结
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
PHP序列号生成函数和字符串替换函数代码
PHP类的静态(static)方法和静态(static)变量使用介绍
PHP备份数据库生成SQL文件并下载的函数代码
PHP将整个网站生成HTML纯静态网页的方法总结
php摘要生成函数(无乱码)
比较详细PHP生成静态页面教程
php ajax 静态分页过程形式
©2014-2024 dbsqp.com