提升代码的可读性系列--基础篇(增强代码可读性是函数的作用吗)
1016
2022-08-06
PHP生成静态类html文件类
/* php生成静态类html文件
/* Createtime: 2015.1.30
/* Author : River
/********************************/
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 { $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 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().'.html'; $this->name=$this->dir.'/'.$filename; break; case 'time': $this->name=$this->dir.'/'.$this->time=$time?$time:$this->time.'.html'; break; case 'nametime': $this->name=$this->dir.'/'.$this->geturlname().'-'.$this->time.'.html'; break; } return $this->name; } //生成静态html 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); } //删除生成的静态文件 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($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); } } } } $time=date("YmdHis"); $html = new html(); $html->html($nametype='name',$dirtype='year',$rootdir='html'); $html->getdir($dirname='',$time); //$html->createdir($dir='file'); $html->createhtml($url='addPro.html',$time,$dirname='',$htmlname=''); //$html->deletehtml($url='',$time,$dirname='') ; //$html->deletedir('html'); ?>
{
$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 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().'.html';
$this->name=$this->dir.'/'.$filename;
break;
case 'time':
$this->name=$this->dir.'/'.$this->time=$time?$time:$this->time.'.html';
break;
case 'nametime':
$this->name=$this->dir.'/'.$this->geturlname().'-'.$this->time.'.html';
break;
}
return $this->name;
}
//生成静态html
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);
}
//删除生成的静态文件
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($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);
}
}
}
}
$time=date("YmdHis");
$html = new html();
$html->html($nametype='name',$dirtype='year',$rootdir='html');
$html->getdir($dirname='',$time);
//$html->createdir($dir='file');
$html->createhtml($url='addPro.html',$time,$dirname='',$htmlname='');
//$html->deletehtml($url='',$time,$dirname='') ;
//$html->deletedir('html');
?>
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~