这是一款可以按时间日期来生成html类,他可以生成文件,同时也支持删除文件,删除目录,具有生成静态所有功能,PHP实例代码类如下:
- class html
- {
- var $dir;
- var $rootdir;
- var $name;
- var $dirname;
- var $url;
- var $time;
- var $dirtype;
- var $nametype;
-
-
- 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(emptyempty($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(emptyempty($htmlname))
- $this -> getname();
- else
- $this -> name = $dirname . '/' . $htmlname;
-
-
- $content = file($this -> url) or die("failed to open the url " . $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);
- }
- }
- }
-
- }
|