生成静态页面的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里得到前天和昨天的日期的代码
Aug 16 PHP
在PHP中读取和写入WORD文档的代码
Apr 09 PHP
PHP 判断变量类型实现代码
Oct 23 PHP
php笔记之常用文件操作
Oct 12 PHP
php通用防注入程序 推荐
Feb 26 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
Feb 22 PHP
基于php上传图片重命名的6种解决方法的详细介绍
Apr 28 PHP
PHP中的魔术方法总结和使用实例
May 11 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
Jun 06 PHP
由php中字符offset特征造成的绕过漏洞详解
Jul 07 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
PHP实现对数字分隔加千分号的方法
Mar 18 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
如何在PHP中使用Oracle数据库(4)
2006/10/09 PHP
一个PHP日历程序
2006/12/06 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
php日历制作代码分享
2014/01/20 PHP
php自动识别文件编码并转换为UTF-8的方法
2014/06/12 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
python中的函数用法入门教程
2014/09/02 Python
python实现按任意键继续执行程序
2016/12/30 Python
python万年历实现代码 含运行结果
2017/05/20 Python
Python设计模式之命令模式简单示例
2018/01/10 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
python多线程分块读取文件
2019/08/29 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
什么是JNDI的上下文?如何初始化JNDI上下文
2012/03/10 面试题
介绍下Lucene建立索引的过程
2016/03/02 面试题
九年级科学教学反思
2014/01/29 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
现实表现材料范文
2014/12/23 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书