Rumah > pembangunan bahagian belakang > tutorial php > php写的一个生成静态页面的类

php写的一个生成静态页面的类

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-07-25 09:05:49
asal
919 orang telah melayarinya
  1. /**

  2. 功能:生成静态页面
  3. 整理:脚本学堂 bbs.it-home.org
  4. 日期:2013-2-16
  5. */
  6. class html
  7. {
  8. var $dir; //dir for the htmls(without/)
  9. var $rootdir; //root of html files(without/):html
  10. var $name; //html文件存放路径
  11. var $dirname; //指定的文件夹名称
  12. var $url; //获取html文件信息的来源网页地址
  13. var $time; //html文件信息填加时的时间
  14. var $dirtype; //目录存放方式:year,month,,,,
  15. var $nametype; //html文件命名方式:name
  16. function html($nametype='name',$dirtype='year',$rootdir='html')

  17. {
  18. $this->setvar($nametype,$dirtype,$rootdir);
  19. }
  20. function setvar($nametype='name',$dirtype='year',$rootdir='html')

  21. {
  22. $this->rootdir=$rootdir;
  23. $this->dirtype=$dirtype;
  24. $this->nametype=$nametype;
  25. }
  26. function createdir($dir='')

  27. {
  28. $this->dir=$dir?$dir:$this->dir;
  29. if (!is_dir($this->dir))

  30. {
  31. $temp = explode('/',$this->dir);
  32. $cur_dir = '';
  33. for($i=0;$i{
  34. $cur_dir .= $temp[$i].'/';
  35. if (!is_dir($cur_dir))
  36. {
  37. @mkdir($cur_dir,0777);
  38. }
  39. }
  40. }
  41. }
  42. function getdir($dirname='',$time=0)

  43. {
  44. $this->time=$time?$time:$this->time;
  45. $this->dirname=$dirname?$dirname:$this->dirname;
  46. switch($this->dirtype)

  47. {
  48. case 'name':
  49. if(empty($this->dirname))
  50. $this->dir=$this->rootdir;
  51. else
  52. $this->dir=$this->rootdir.'/'.$this->dirname;
  53. break;
  54. case 'year':
  55. $this->dir=$this->rootdir.'/'.date("Y",$this->time);
  56. break;
  57. case 'month':

  58. $this->dir=$this->rootdir.'/'.date("Y-m",$this->time);
  59. break;
  60. case 'day':

  61. $this->dir=$this->rootdir.'/'.date("Y-m-d",$this->time);
  62. break;
  63. }
  64. $this->createdir();

  65. return $this->dir;

  66. }
  67. function geturlname($url='')

  68. {
  69. $this->url=$url?$url:$this->url;
  70. $filename=basename($this->url);

  71. $filename=explode(".",$filename);
  72. return $filename[0];
  73. }
  74. function geturlquery($url='')

  75. {
  76. $this->url=$url?$url:$this->url;
  77. $durl=parse_url($this->url);

  78. $durl=explode("&",$durl[query]);
  79. foreach($durl as $surl)
  80. {
  81. $gurl=explode("=",$surl);
  82. $eurl[]=$gurl[1];
  83. }
  84. return join("_",$eurl);
  85. }
  86. function getname($url='',$time=0,$dirname='')

  87. {
  88. $this->url=$url?$url:$this->url;
  89. $this->dirname=$dirname?$dirname:$this->dirname;
  90. $this->time=$time?$time:$this->time;
  91. $this->getdir();

  92. switch($this->nametype)

  93. {
  94. case 'name':
  95. $filename=$this->geturlname().'.htm';
  96. $this->name=$this->dir.'/'.$filename;
  97. break;
  98. case 'time':

  99. $this->name=$this->dir.'/'.$this->time.'.htm';
  100. break;
  101. case 'query':

  102. $this->name=$this->dir.'/'.$this->geturlquery().'.htm';
  103. break;
  104. case 'namequery':

  105. $this->name=$this->dir.'/'.$this->geturlname().'-'.$this->geturlquery().'.htm';
  106. break;
  107. case 'nametime':

  108. $this->name=$this->dir.'/'.$this->geturlname().'-'.$this->time.'.htm';
  109. break;
  110. }

  111. return $this->name;
  112. }
  113. function createhtml($url='',$time=0,$dirname='',$htmlname='')

  114. {
  115. $this->url=$url?$url:$this->url;
  116. $this->dirname=$dirname?$dirname:$this->dirname;
  117. $this->time=$time?$time:$this->time;
  118. //上面保证不重复地把变量赋予该类成员
  119. if(empty($htmlname))
  120. $this->getname();
  121. else
  122. $this->name=$dirname.'/'.$htmlname; //得到name
  123. $content=file($this->url) or die("Failed to open the url ".$this->url." !");;
  124. ///////////////关键步---用file读取$this->url

  125. $content=join("",$content);
  126. $fp=@fopen($this->name,"w") or die("Failed to open the file ".$this->name." !");
  127. if(@fwrite($fp,$content))
  128. return true;
  129. else
  130. return false;
  131. fclose($fp);
  132. }
  133. /////////////////以name为名字生成html
  134. function deletehtml($url='',$time=0,$dirname='')
  135. {
  136. $this->url=$url?$url:$this->url;
  137. $this->time=$time?$time:$this->time;
  138. $this->getname();

  139. if(@unlink($this->name))

  140. return true;
  141. else
  142. return false;
  143. }
  144. /**

  145. * function::deletedir()
  146. * 删除目录
  147. * @param $file 目录名(不带/)
  148. * @return
  149. */
  150. function deletedir($file)
  151. {
  152. if(file_exists($file))
  153. {
  154. if(is_dir($file))
  155. {
  156. $handle =opendir($file);
  157. while(false!==($filename=readdir($handle)))
  158. {
  159. if($filename!="."&&$filename!="..")
  160. $this->deletedir($file."/".$filename);
  161. }
  162. closedir($handle);
  163. rmdir($file);
  164. return true;
  165. }else{
  166. unlink($file);
  167. }
  168. }
  169. }
  170. }
  171. ?>
复制代码

您可能感兴趣的文章: php生成静态页面的三种方法与代码详解 php生成静态页面函数(php2html)的例子 php生成静态页面的方法(三个函数) 细说php生成静态文件之模板与缓存 虚拟主机上定时自动生成静态页面的方法 php生成静态文件的二种方法 php生成静态页面的详细教程 php生成静态html文件的原理分析 smarty生成静态页面的方法 了解php生成静态HTML文件的原理 PHP生成静态页面的方法 php生成静态html文件的三种方法



Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan