生成静态页面的PHP类


Posted in PHP onNovember 25, 2006
<?php  
class html  
{  
 var $dir; //dir for the htmls(without/)  
 var $rootdir; //root of html files(without/):html  
 var $name; //html文件存放路径  
 var $dirname; //指定的文件夹名称  
 var $url; //获取html文件信息的来源网页地址  
 var $time; //html文件信息填加时的时间  
 var $dirtype; //目录存放方式:year,month,,,,  
 var $nametype; //html文件命名方式:name   function html($nametype='name',$dirtype='year',$rootdir='html')  
 {  
 $this->setvar($nametype,$dirtype,$rootdir);  
 }  
 function setvar($nametype='name',$dirtype='year',$rootdir='html')  
 {  
 $this->rootdir=$rootdir;  
 $this->dirtype=$dirtype;  
 $this->nametype=$nametype;  
 }  
 function createdir($dir='')  
 {  
 $this->dir=$dir?$dir:$this->dir;  
 if (!is_dir($this->dir))  
 {  
 $temp = explode('/',$this->dir);  
 $cur_dir = '';  
 for($i=0;$i<count($temp);$i++)  
 {  
 $cur_dir .= $temp[$i].'/';  
 if (!is_dir($cur_dir))  
 {  
 @mkdir($cur_dir,0777);  
 }  
 }  
 }  
 }  
 function getdir($dirname='',$time=0)  
 {  
 $this->time=$time?$time:$this->time;  
 $this->dirname=$dirname?$dirname:$this->dirname;  
 switch($this->dirtype)  
 {  
 case 'name':  
 if(empty($this->dirname))  
 $this->dir=$this->rootdir;  
 else  
 $this->dir=$this->rootdir.'/'.$this->dirname;  
 break;  
 case 'year':  
 $this->dir=$this->rootdir.'/'.date("Y",$this->time);  
 break;  
 case 'month':  
 $this->dir=$this->rootdir.'/'.date("Y-m",$this->time);  
 break;  
 case 'day':  
 $this->dir=$this->rootdir.'/'.date("Y-m-d",$this->time);  
 break;  
 }  
 $this->createdir();  
 return $this->dir;  
 }  
 function geturlname($url='')  
 {  
 $this->url=$url?$url:$this->url;  
 $filename=basename($this->url);  
 $filename=explode(".",$filename);  
 return $filename[0];  
 }  
 function geturlquery($url='')  
 {  
 $this->url=$url?$url:$this->url;  
 $durl=parse_url($this->url);  
 $durl=explode("&",$durl[query]);  
 foreach($durl as $surl)  
 {  
 $gurl=explode("=",$surl);  
 $eurl[]=$gurl[1];  
 }  
 return join("_",$eurl);  
 }  
 function getname($url='',$time=0,$dirname='')  
 {  
 $this->url=$url?$url:$this->url;  
 $this->dirname=$dirname?$dirname:$this->dirname;  
 $this->time=$time?$time:$this->time;  
 $this->getdir();  
 switch($this->nametype)  
 {  
 case 'name':  
 $filename=$this->geturlname().'.htm';  
 $this->name=$this->dir.'/'.$filename;  
 break;  
 case 'time':  
 $this->name=$this->dir.'/'.$this->time.'.htm';  
 break;  
 case 'query':  
 $this->name=$this->dir.'/'.$this->geturlquery().'.htm';  
 break;  
 case 'namequery':  
 $this->name=$this->dir.'/'.$this->geturlname().'-'.$this->geturlquery().'.htm';  
 break;  
 case 'nametime':  
 $this->name=$this->dir.'/'.$this->geturlname().'-'.$this->time.'.htm';  
 break;  
 }  
 return $this->name;  
 }  
 function createhtml($url='',$time=0,$dirname='',$htmlname='')  
 {  
 $this->url=$url?$url:$this->url;  
 $this->dirname=$dirname?$dirname:$this->dirname;  
 $this->time=$time?$time:$this->time;  
 //上面保证不重复地把变量赋予该类成员  
 if(empty($htmlname))  
 $this->getname();  
 else  
 $this->name=$dirname.'/'.$htmlname; //得到name  
 $content=file($this->url) or die("Failed to open the url ".$this->url." !");;  
///////////////关键步---用file读取$this->url  
  
 $content=join("",$content);  
 $fp=@fopen($this->name,"w") or die("Failed to open the file ".$this->name." !");  
 if(@fwrite($fp,$content))  
 return true;  
 else  
 return false;  
 fclose($fp);  
 }  
/////////////////以name为名字生成html  
 function deletehtml($url='',$time=0,$dirname='')  
 {  
 $this->url=$url?$url:$this->url;  
 $this->time=$time?$time:$this->time;  
 $this->getname();  
 if(@unlink($this->name))  
 return true;  
 else  
 return false;  
 }  
 /**  
 * function::deletedir()  
 * 删除目录  
 * @param $file 目录名(不带/)  
 * @return  
 */  
 function deletedir($file)  
 {  
 if(file_exists($file))  
 {  
 if(is_dir($file))  
 {  
 $handle =opendir($file);  
 while(false!==($filename=readdir($handle)))  
 {  
 if($filename!="."&&$filename!="..")  
 $this->deletedir($file."/".$filename);  
 }  
 closedir($handle);  
 rmdir($file);  
 return true;  
 }else{  
 unlink($file);  
 }  
 }  
 }  
}  
?>
PHP 相关文章推荐
PHP脚本的10个技巧(7)
Oct 09 PHP
PHP一些有意思的小区别
Dec 06 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
php 操作符与控制结构
Mar 07 PHP
深入解析php中的foreach函数
Aug 31 PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 PHP
php字符串函数学习之strstr()
Mar 27 PHP
浅谈PDO的rowCount函数
Jun 18 PHP
php ajax异步读取rss文档数据
Mar 29 PHP
ThinkPHP框架里隐藏index.php
Apr 12 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
Apr 08 PHP
PHP RabbitMQ消息列队
May 11 PHP
PHP静态类
Nov 25 #PHP
PHP文本操作类
Nov 25 #PHP
小偷PHP+Html+缓存
Nov 25 #PHP
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 #PHP
如何使用PHP中的字符串函数
Nov 24 #PHP
PHP常用代码
Nov 23 #PHP
给初学PHP的5个入手程序
Nov 23 #PHP
You might like
WML,Apache,和 PHP 的介绍
2006/10/09 PHP
php include和require的区别深入解析
2013/06/17 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
php将字符串转化成date存入数据库的两种方式
2014/04/28 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
php验证码生成代码
2015/11/11 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
jQuery实现动画效果的简单实例
2014/01/27 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
ES6新特性一: let和const命令详解
2017/04/20 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
js实现随机数小游戏
2019/06/28 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
python Django模板的使用方法(图文)
2013/11/04 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
Python 求向量的余弦值操作
2021/03/04 Python
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
超市业务员岗位职责
2013/12/05 职场文书
三好学生事迹材料
2014/12/24 职场文书
运动会通讯稿600字
2015/07/20 职场文书
如何在Python项目中引入日志
2021/05/31 Python
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python