ホームページ  >  記事  >  バックエンド開発  >  静的ページを生成するために PHP で書かれたクラス

静的ページを生成するために PHP で書かれたクラス

WBOY
WBOYオリジナル
2016-07-25 09:05:49848ブラウズ
  1. /**

  2. 機能: 静的ページの生成
  3. 主催: Scripting School bbs.it-home.org
  4. 日付: 2013-2-16
  5. */
  6. class html
  7. {
  8. var $dir // htmls(without/)
  9. var $rootdir; HTMLファイルのルート(/なし):html
  10. var $name; //HTMLファイルの保存パス
  11. var $dirname; //HTMLファイルのソースWebページアドレスを取得
  12. var $time; //HTMLファイルの情報を記入する時刻
  13. var $dirtype; //ディレクトリの保存方法:年,月,,,,,
  14. var $nametype; //HTMLファイルの命名方法:name

    < ;p>function html($nametype='name',$dirtype='year',$rootdir='html')
  15. {
  16. $this->setvar($nametype,$dirtype,$rootdir);
  17. } < ;/p>
  18. function setvar($nametype='name',$dirtype='year',$rootdir='html')

  19. {
  20. $this->rootdir=$rootdir;
  21. $this - >dirtype=$dirtype;
  22. $this->nametype=$nametype;
  23. }

  24. 関数が作成されましたir($dir='')

  25. {
  26. $this->dir= $ dir?$dir:$this->dir;

  27. if (!is_dir($this->dir))

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

  41. 関数 getdir($dirname='', $ time=0)

  42. {
  43. $this->time=$time?$time:$this->time;
  44. $this->dirname=$dirname?$dirname:$this->dirname;< ; /p>
  45. switch($this->dirtype)

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

  56. case 'month':

  57. $this->dir= $ this->rootdir.'/'.date("Y-m",$this->time);
  58. break;

  59. case 'day':

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

  63. $this->createdir(); < ;/p>

  64. return $this->dir;

  65. }

  66. function geturlname($url='')

  67. {
  68. $this->url=$ url ?$url:$this->url;

  69. $filename=basename($this->url);

  70. $filename=explode(".",$filename);
  71. return $filename[0];
  72. }

  73. function geturlquery($url='')

  74. {
  75. $this->url=$url?$url:$this->url ;

  76. $durl=parse_url($this->url);

  77. $durl=explode("&",$durl[query]);
  78. foreach($durl as $surl)
  79. {
  80. $gurl=explode("=",$surl);
  81. $eurl[]=$gurl[1];
  82. }
  83. return join("_",$eurl);
  84. }

  85. < ;p>function getname($url='',$time=0,$dirname='')
  86. {
  87. $this->url=$url?$url:$this->url;
  88. $this - >dirname=$dirname?$dirname:$this->dirname;
  89. $this->time=$time?$time:$this->time;

  90. $ this ->getdir();

  91. switch($this->nametype)

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

  97. case 'time':

  98. $this->name = $this->dir.'/'.$this->time.'.htm';
  99. break;

  100. case 'クエリ':

  101. $this->name= $ this->dir.'/'.$this->geturlquery().'.htm';
  102. break;

  103. case 'namequery':

  104. $this->name = $this->dir.'/'.$this->geturlname().'-'.$this->geturlquery().'.htm';
  105. break;

  106. < p> ;case 'nametime':
  107. $this->name=$this->dir.'/'.$this->geturlname().'-'.$this->time.'.htm' ;
  108. break;

  109. }

  110. return $this->name;
  111. }

  112. function createhtml($url='',$time=0,$dirname='',$htmlname='')

  113. {
  114. $this->url=$url?$ url:$this->url;
  115. $this->dirname=$dirname?$dirname:$this->dirname;
  116. $this->time=$time?$time:$this->time ;
  117. //上面保证不重复地握变量赋予该类成员
  118. if(empty($htmlname))
  119. $this->getname();
  120. else
  121. $this->name=$dirname.'/' .$html名; //name
  122. $content=file($this->url) または die("URL ".$this->url." を開けませんでした。" !");;

  123. url
  124. $content=join("",$content);
  125. $fp=@fopen ($this->name,"w") または die("ファイル ".$this->name." を開けませんでした。" !");
  126. if(@fwrite($fp,$content))
  127. return true;
  128. else
  129. return false;
  130. fclose($fp);
  131. }
  132. /////////////////以nameは名字生成html
  133. function deletehtml($url='' ,$time=0,$dirname='')
  134. {
  135. $this->url=$url?$url:$this->url;
  136. $this->time=$time?$time:$ this->time;

  137. $this->getname();

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

  139. return true;
  140. else
  141. return false;
  142. }

  143. /**

  144. * function::deletedir()
  145. * ディレクトリの削除
  146. * @param $file ディレクトリ名(/なし)
  147. * @return
  148. */
  149. 関数が削除されましたir($file)
  150. {
  151. if(file_exists($file))
  152. {
  153. if (is_dir($file))
  154. {
  155. $handle =opendir($file);
  156. while(false!==($filename=readdir($handle)))
  157. {
  158. if($filename!=."&& $filename!="..")
  159. $this->deletedir($file."/".$filename);
  160. }
  161. closedir($handle);
  162. rmdir($file);
  163. return true;
  164. } else{
  165. unlink($file);
  166. }
  167. }
  168. }
  169. }
  170. ?>

复制代

您の可能性を感じられる文章: php 静态页面を生成する 3 つの方法与代金详解 php生成静态页面関数(php2html)の例 php生成静态页面的方法(三関数数) 细说php生成静态文件の型板与缓存 仮想主机上で静态页面を自動生成する方法 php生成静态ファイルの二種類の方法 php生成静态页面の详细教程 php生成静态htmlファイルの原理分析 smarty生成静态页面の方法 php による静态 HTML 文書生成の原理を理解する PHP 静态页面を生成する方法 php 静态htmlファイルを生成する 3 つの方法



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。