php生成html简单代码实例 .

17 篇文章 0 订阅
14 篇文章 0 订阅

实例一

原理剖析:

当我们制作数据量大以及访问人数多的网站时往往会采用动态生成html静态页面的方法,这样做的好处是用户直接访问静态页面,减轻了服务器的负担,又可以对搜索引擎更加友好,可谓一举两得;

其原理是先读入模板文件,然后按照一定的规则替换模板中的标签,具体实现如下:


index.tpl 模板文件代码:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    
  2. <html xmlns="http://www.w3.org/1999/xhtml">    
  3. <head>    
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
  5. <title>{title}</title>    
  6. </head>    
  7. <body>    
  8. {content}     
  9. </body>    
  10. </html>   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>{title}</title>  
</head>  
<body>  
{content}   
</body>  
</html> 


index.php 服务端代码:

  1. <?php     
  2. $data = array('id' => 1, 'title' => '这里是标题''content' => '这里是内容');     
  3. $tpl = 'index.tpl';     
  4. $content = file_get_contents($tpl);     //读取模板文件的内容      
  5. $content = str_replace('{title}',$data['title'],$content);  //用具体数据来替换模板标签      
  6. $content = str_replace('{content}',$data['content'],$content);     
  7. file_put_contents($data['id'].'.html',$content);   //将替换后的内容写进html文件中      
  8. ?>   
<?php   
$data = array('id' => 1, 'title' => '这里是标题', 'content' => '这里是内容');   
$tpl = 'index.tpl';   
$content = file_get_contents($tpl);     //读取模板文件的内容   
$content = str_replace('{title}',$data['title'],$content);  //用具体数据来替换模板标签   
$content = str_replace('{content}',$data['content'],$content);   
file_put_contents($data['id'].'.html',$content);   //将替换后的内容写进html文件中   
?> 


这里是从数组中直接读取数据,实际过程中可以将数据库读取的数据保存在数组中,然后用循环的方法实现替换就行了。

 

实例二

  1. //单页生成html页   
  2. <?php  
  3. ob_start();   //开启服务器缓存   
  4. include_once '../gsjj.php';   
  5. $ctx=ob_get_contents();     //获取缓存   
  6. ob_end_clean();     //清空缓存    
  7. $fh=fopen("../gsjj.html","w+");    
  8. fwrite($fh,$ctx);    //写入html,生成html   
  9. fclose($fh);    
  10. echo "<script>alert('文件生成成功');location.href='makehtml.php';</script>";  
  11. ?>  
  12.   
  13. //新闻列表带分页生成html页   
  14. <?php  
  15. $fp = fopen ("../new.html","r");  //只读方式打开 new.html模板,将文件指针指向文件头   
  16. $content = fread ($fp,filesize ("../new.html"));    //读取整个文件内容   
  17. $list = '';  
  18. $num=0;  
  19. $sql"select * from news ";  
  20. $result=mysql_query($sql);  
  21. while($row=mysql_fetch_assoc($result))  
  22. {    //查询entries表,取出列表项   
  23. $num++;  
  24. if($row["url"]=="")  
  25. {  
  26. $list .= "<ul class='news' id='ul'><li><a href='".$row["tid"].".html'>".$row['title']."</a></li></ul>";  
  27. }  
  28. else  
  29. {  
  30. $list .= "<ul class='news' id='ul'><li><a href='".$row["url"]."' target='_blank'>".$row['title']."</a></li></ul>";  
  31. }  
  32. }  
  33. $contentstr_replace ("{articletable}",$list,$content);  
  34. //生成列表结束   
  35. // echo $content;   
  36. $filename = "../news.html";  
  37. $filename1 = "../new.html";  
  38. $handle = fopen ($filename,"w"); //打开文件指针,创建文件   
  39. /* 
  40.  检查文件是否被创建且可写 
  41. */  
  42. if (!is_writable ($filename)){  
  43. die ("文件:".$filename."不可写,请检查其属性后重试!");  
  44. }  
  45. if (!fwrite ($handle,$content)){ //将信息写入文件   
  46. die ("生成文件".$filename."失败!");  
  47. }  
  48. fclose ($handle); //关闭指针   
  49. die ("Create file ".$filename." success !");  
  50. ?>  
//单页生成html页
<?php
ob_start();   //开启服务器缓存
include_once '../gsjj.php'; 
$ctx=ob_get_contents();     //获取缓存
ob_end_clean();     //清空缓存 
$fh=fopen("../gsjj.html","w+");  
fwrite($fh,$ctx);    //写入html,生成html
fclose($fh);  
echo "<script>alert('文件生成成功');location.href='makehtml.php';</script>";
?>

//新闻列表带分页生成html页
<?php
$fp = fopen ("../new.html","r");  //只读方式打开 new.html模板,将文件指针指向文件头
$content = fread ($fp,filesize ("../new.html"));    //读取整个文件内容
$list = '';
$num=0;
$sql= "select * from news ";
$result=mysql_query($sql);
while($row=mysql_fetch_assoc($result))
{    //查询entries表,取出列表项
$num++;
if($row["url"]=="")
{
$list .= "<ul class='news' id='ul'><li><a href='".$row["tid"].".html'>".$row['title']."</a></li></ul>";
}
else
{
$list .= "<ul class='news' id='ul'><li><a href='".$row["url"]."' target='_blank'>".$row['title']."</a></li></ul>";
}
}
$content= str_replace ("{articletable}",$list,$content);
//生成列表结束
// echo $content;
$filename = "../news.html";
$filename1 = "../new.html";
$handle = fopen ($filename,"w"); //打开文件指针,创建文件
/*
 检查文件是否被创建且可写
*/
if (!is_writable ($filename)){
die ("文件:".$filename."不可写,请检查其属性后重试!");
}
if (!fwrite ($handle,$content)){ //将信息写入文件
die ("生成文件".$filename."失败!");
}
fclose ($handle); //关闭指针
die ("Create file ".$filename." success !");
?>


模板页面 new.html
  1. <div id="mydiv">  
  2. {articletable}  
  3. </div>  
  4. <div id="changpage" style="text-align:center; color:#333333; margin-top:50px"></div>  
  5. <script>  
  6. var obj,j;  
  7. var page=0;  
  8. var nowPage=0;//当前页  
  9. var listNum=40;//每页显示<ul>数  
  10. var PagesLen;//总页数  
  11. var PageNum=500;//分页链接接数(5个)  
  12. onload=function(){  
  13. obj=document.getElementById("mydiv").getElementsByTagName("ul");  
  14. j=obj.length  
  15. PagesLen=Math.ceil(j/listNum);  
  16. upPage(0)  
  17. }  
  18. function upPage(p){  
  19. nowPage=p  
  20. //内容变换  
  21. for (var i=0;i<j;i++){  
  22. obj[i].style.display="none"  
  23. }  
  24. for (var i=p*listNum;i<(p+1)*listNum;i++){  
  25. if(obj[i])obj[i].style.display="block"  
  26. }  
  27. //分页链接变换  
  28. strS='<a href="###" οnclick="upPage(0)" style="color:#000000">首页</a> '  
  29. var PageNum_2=PageNum%2==0?Math.ceil(PageNum/2)+1:Math.ceil(PageNum/2)  
  30. var PageNum_3=PageNum%2==0?Math.ceil(PageNum/2):Math.ceil(PageNum/2)+1  
  31. var strC="",startPage,endPage;  
  32. if (PageNum>=PagesLen) {startPage=0;endPage=PagesLen-1}  
  33. else if (nowPage<PageNum_2){startPage=0;endPage=PagesLen-1>PageNum?PageNum:PagesLen-1}//首页  
  34. else {startPage=nowPage+PageNum_3>=PagesLen?PagesLen-PageNum-1: nowPage-PageNum_2+1;var t=startPage+PageNum;endPage=t>PagesLen?PagesLen-1:t}  
  35. for (var i=startPage;i<=endPage;i++){  
  36. if (i==nowPage)strC+='<a href="###" style="color:red;font-weight:700;" onclick="upPage('+i+')">'+(i+1)+'</a> '  
  37. else strC+='<a href="###" onclick="upPage('+i+')">'+(i+1)+'</a> '  
  38. }  
  39. strE=' <a href="###" οnclick="upPage('+(PagesLen-1)+')" style="color:#000000">尾页</a> '  
  40. strE2=nowPage+1+"/"+PagesLen+"页"+" 共"+j+"条"  
  41. document.getElementById("changpage").innerHTML=strS+strC+strE+strE2  
  42. }  
  43. </script>  
  44. </div>  
<div id="mydiv">
{articletable}
</div>
<div id="changpage" style="text-align:center; color:#333333; margin-top:50px"></div>
<script>
var obj,j;
var page=0;
var nowPage=0;//当前页
var listNum=40;//每页显示<ul>数
var PagesLen;//总页数
var PageNum=500;//分页链接接数(5个)
οnlοad=function(){
obj=document.getElementById("mydiv").getElementsByTagName("ul");
j=obj.length
PagesLen=Math.ceil(j/listNum);
upPage(0)
}
function upPage(p){
nowPage=p
//内容变换
for (var i=0;i<j;i++){
obj[i].style.display="none"
}
for (var i=p*listNum;i<(p+1)*listNum;i++){
if(obj[i])obj[i].style.display="block"
}
//分页链接变换
strS='<a href="###" οnclick="upPage(0)" style="color:#000000">首页</a> '
var PageNum_2=PageNum%2==0?Math.ceil(PageNum/2)+1:Math.ceil(PageNum/2)
var PageNum_3=PageNum%2==0?Math.ceil(PageNum/2):Math.ceil(PageNum/2)+1
var strC="",startPage,endPage;
if (PageNum>=PagesLen) {startPage=0;endPage=PagesLen-1}
else if (nowPage<PageNum_2){startPage=0;endPage=PagesLen-1>PageNum?PageNum:PagesLen-1}//首页
else {startPage=nowPage+PageNum_3>=PagesLen?PagesLen-PageNum-1: nowPage-PageNum_2+1;var t=startPage+PageNum;endPage=t>PagesLen?PagesLen-1:t}
for (var i=startPage;i<=endPage;i++){
if (i==nowPage)strC+='<a href="###" style="color:red;font-weight:700;" οnclick="upPage('+i+')">'+(i+1)+'</a> '
else strC+='<a href="###" οnclick="upPage('+i+')">'+(i+1)+'</a> '
}
strE=' <a href="###" οnclick="upPage('+(PagesLen-1)+')" style="color:#000000">尾页</a> '
strE2=nowPage+1+"/"+PagesLen+"页"+" 共"+j+"条"
document.getElementById("changpage").innerHTML=strS+strC+strE+strE2
}
</script>
</div>



 

  1. //后台添加文章生成 html   
  2. <?php   
  3.   mt_srand((double)microtime()*1000000);  
  4.         $randval = mt_rand(1, 99999);  
  5.         $tmp_num = $randval;  
  6.          $title=$_POST['title'];  
  7.         $gjc=$_POST['gjc'];  
  8.         $content=trim($_POST['content']);  
  9.         $bz=$_POST['bz'];  
  10.         $url=$_POST['url'];  
  11.         $shijian=date("Y-m-d");  
  12.         $mobanpath=$root."../newxinxi.html";  
  13.         $fp=fopen($mobanpath,"rb");  
  14.         $news_contents=fread($fp,filesize($mobanpath));  
  15.         $news_contents=str_replace("{-news_title-}",$title,$news_contents);  
  16.         $news_contents=str_replace("{-news_gjc-}",$gjc,$news_contents);  
  17.         $news_contents=trim(str_replace("{-content-}",$content,$news_contents));  
  18.         $news_contents=str_replace("{-bz-}",$bz,$news_contents);  
  19.         $news_contents=str_replace("{-shijian-}",$shijian,$news_contents);  
  20.         $news_contents=str_replace("{-url-}",$url,$news_contents);  
  21.         $news_contents=str_replace("{-shijian-}",$shijian,$news_contents);  
  22.         $list = '';  
  23.         $num=1;  
  24.         $sql"select * from news order by id desc limit 0,1";  
  25.         $result=mysql_query($sql);  
  26.         while($row=mysql_fetch_assoc($result))  
  27.         {//查询entries表,取出列表项   
  28.         /*$num=$nmu+1;  */  
  29.         $id=$row["id"]+1;     
  30.           
  31.         $filename="".$tmp_num.".html";    
  32.           
  33.             }  
  34.             $num++;  
  35.         $newspath=$root."../".$filename;          
  36.         $fp1=fopen($newspath,"w");        
  37.         fwrite($fp1,$news_contents,strlen($news_contents));  
  38.           
  39.         $sql="insert into news (title,shijian,content,gjc,bz,url,tid) values ('$_POST[title]','$shijian','$_POST[content]','$_POST[gjc]','$_POST[bz]','$_POST[url]','$tmp_num')";  
  40.         $result=mysql_query($sql);  
  41.         echo "<script>";  
  42.         echo "alert('新闻添加成功!');";  
  43.         echo "window.location=('news.php');";  
  44.         echo "</script>";           
  45. ?>  
//后台添加文章生成 html
<?php 
  mt_srand((double)microtime()*1000000);
		$randval = mt_rand(1, 99999);
		$tmp_num = $randval;
		 $title=$_POST['title'];
		$gjc=$_POST['gjc'];
		$content=trim($_POST['content']);
		$bz=$_POST['bz'];
		$url=$_POST['url'];
		$shijian=date("Y-m-d");
		$mobanpath=$root."../newxinxi.html";
		$fp=fopen($mobanpath,"rb");
		$news_contents=fread($fp,filesize($mobanpath));
		$news_contents=str_replace("{-news_title-}",$title,$news_contents);
		$news_contents=str_replace("{-news_gjc-}",$gjc,$news_contents);
		$news_contents=trim(str_replace("{-content-}",$content,$news_contents));
		$news_contents=str_replace("{-bz-}",$bz,$news_contents);
		$news_contents=str_replace("{-shijian-}",$shijian,$news_contents);
		$news_contents=str_replace("{-url-}",$url,$news_contents);
		$news_contents=str_replace("{-shijian-}",$shijian,$news_contents);
		$list = '';
		$num=1;
		$sql= "select * from news order by id desc limit 0,1";
		$result=mysql_query($sql);
		while($row=mysql_fetch_assoc($result))
		{//查询entries表,取出列表项
		/*$num=$nmu+1;	*/
		$id=$row["id"]+1;	
		
		$filename="".$tmp_num.".html";	
		
			}
			$num++;
		$newspath=$root."../".$filename;		
		$fp1=fopen($newspath,"w");		
		fwrite($fp1,$news_contents,strlen($news_contents));
		
		$sql="insert into news (title,shijian,content,gjc,bz,url,tid) values ('$_POST[title]','$shijian','$_POST[content]','$_POST[gjc]','$_POST[bz]','$_POST[url]','$tmp_num')";
		$result=mysql_query($sql);
		echo "<script>";
		echo "alert('新闻添加成功!');";
		echo "window.location=('news.php');";
		echo "</script>"; 		
?>


 

 

其他——php生成html的类

  1. <?php  
  2. class html  
  3. {  
  4.     var $dir//dir for the htmls(without/)    
  5.     var $rootdir//root of html files(without/):html    
  6.     var $name//html文件存放路径    
  7.     var $dirname//指定的文件夹名称    
  8.     var $url//获取html文件信息的来源网页地址    
  9.     var $time//html文件信息填加时的时间    
  10.     var $dirtype//目录存放方式:year,month,,,,    
  11.     var $nametype//html文件命名方式:name    
  12.       
  13.       
  14.     function html($nametype = 'name'$dirtype = 'year'$rootdir = 'html')  
  15.     {  
  16.         $this -> setvar($nametype$dirtype$rootdir);  
  17.         }  
  18.       
  19.     function setvar($nametype = 'name'$dirtype = 'year'$rootdir = 'html')  
  20.     {  
  21.         $this -> rootdir = $rootdir;  
  22.         $this -> dirtype = $dirtype;  
  23.         $this -> nametype = $nametype;  
  24.         }  
  25.       
  26.     function createdir($dir = '')  
  27.     {  
  28.         $this -> dir = $dir?$dir:$this -> dir;  
  29.           
  30.         if (!is_dir($this -> dir))  
  31.             {  
  32.             $temp = explode('/'$this -> dir);  
  33.             $cur_dir = '';  
  34.             for($i = 0;$i < count($temp);$i++)  
  35.             {  
  36.                 $cur_dir .= $temp[$i] . '/';  
  37.                 if (!is_dir($cur_dir))  
  38.                     {  
  39.                     @mkdir($cur_dir, 0777);  
  40.                     }  
  41.                 }  
  42.             }  
  43.         }  
  44.       
  45.     function getdir($dirname = ''$time = 0)  
  46.     {  
  47.         $this -> time = $time?$time:$this -> time;  
  48.         $this -> dirname = $dirname?$dirname:$this -> dirname;  
  49.           
  50.         switch($this -> dirtype)  
  51.         {  
  52.         case 'name':  
  53.             if(empty($this -> dirname))  
  54.                 $this -> dir = $this -> rootdir;  
  55.             else  
  56.                 $this -> dir = $this -> rootdir . '/' . $this -> dirname;  
  57.             break;  
  58.         case 'year':  
  59.             $this -> dir = $this -> rootdir . '/' . date("Y"$this -> time);  
  60.             break;  
  61.           
  62.         case 'month':  
  63.             $this -> dir = $this -> rootdir . '/' . date("Y-m"$this -> time);  
  64.             break;  
  65.           
  66.         case 'day':  
  67.             $this -> dir = $this -> rootdir . '/' . date("Y-m-d"$this -> time);  
  68.             break;  
  69.             }  
  70.           
  71.         $this -> createdir();  
  72.           
  73.         return $this -> dir;  
  74.         }  
  75.       
  76.     function geturlname($url = '')  
  77.     {  
  78.         $this -> url = $url?$url:$this -> url;  
  79.           
  80.         $filename = basename($this -> url);  
  81.         $filename = explode("."$filename);  
  82.         return $filename[0];  
  83.         }  
  84.       
  85.     function geturlquery($url = '')  
  86.     {  
  87.         $this -> url = $url?$url:$this -> url;  
  88.           
  89.         $durl = parse_url($this -> url);  
  90.         $durl = explode("&"$durl[query]);  
  91.         foreach($durl as $surl)  
  92.         {  
  93.             $gurl = explode("="$surl);  
  94.             $eurl[] = $gurl[1];  
  95.             }  
  96.         return join("_"$eurl);  
  97.         }  
  98.       
  99.     function getname($url = ''$time = 0, $dirname = '')  
  100.     {  
  101.         $this -> url = $url?$url:$this -> url;  
  102.         $this -> dirname = $dirname?$dirname:$this -> dirname;  
  103.         $this -> time = $time?$time:$this -> time;  
  104.           
  105.         $this -> getdir();  
  106.           
  107.         switch($this -> nametype)  
  108.         {  
  109.         case 'name':  
  110.             $filename = $this -> geturlname() . '.htm';  
  111.             $this -> name = $this -> dir . '/' . $filename;  
  112.             break;  
  113.           
  114.         case 'time':  
  115.             $this -> name = $this -> dir . '/' . $this -> time . '.htm';  
  116.             break;  
  117.           
  118.         case 'query':  
  119.             $this -> name = $this -> dir . '/' . $this -> geturlquery() . '.htm';  
  120.             break;  
  121.           
  122.         case 'namequery':  
  123.             $this -> name = $this -> dir . '/' . $this -> geturlname() . '-' . $this -> geturlquery() . '.htm';  
  124.             break;  
  125.           
  126.         case 'nametime':  
  127.             $this -> name = $this -> dir . '/' . $this -> geturlname() . '-' . $this -> time . '.htm';  
  128.             break;  
  129.               
  130.             }  
  131.         return $this -> name;  
  132.         }  
  133.       
  134.     function createhtml($url = ''$time = 0, $dirname = ''$htmlname = '')  
  135.     {  
  136.         $this -> url = $url?$url:$this -> url;  
  137.         $this -> dirname = $dirname?$dirname:$this -> dirname;  
  138.         $this -> time = $time?$time:$this -> time;  
  139.         // 上面保证不重复地把变量赋予该类成员   
  140.         if(empty($htmlname))  
  141.             $this -> getname();  
  142.         else  
  143.             $this -> name = $dirname . '/' . $htmlname//得到name    
  144.           
  145.           
  146.         $content = file($this -> url) or die("Failed to open the url " . $this -> url . " !");;  
  147.           
  148.         // /关键步---用file读取$this->url   
  149.           
  150.         $content = join(""$content);  
  151.         $fp = @fopen($this -> name, "w"or die("Failed to open the file " . $this -> name . " !");  
  152.         if(@fwrite($fp$content))  
  153.             return true;  
  154.         else  
  155.             return false;  
  156.         fclose($fp);  
  157.         }  
  158.     // ///以name为名字生成html   
  159.     function deletehtml($url = ''$time = 0, $dirname = '')  
  160.     {  
  161.         $this -> url = $url?$url:$this -> url;  
  162.         $this -> time = $time?$time:$this -> time;  
  163.           
  164.         $this -> getname();  
  165.           
  166.         if(@unlink($this -> name))  
  167.             return true;  
  168.         else  
  169.             return false;  
  170.         }  
  171.       
  172.     /** 
  173.      * function::deletedir()  
  174.      * 删除目录 
  175.      *  
  176.      * @param $file 目录名(不带/) 
  177.      * @return  
  178.      */  
  179.     function deletedir($file)  
  180.     {  
  181.         if(file_exists($file))  
  182.             {  
  183.             if(is_dir($file))  
  184.                 {  
  185.                 $handle = opendir($file);  
  186.                 while(false !== ($filename = readdir($handle)))  
  187.                 {  
  188.                     if($filename != "." && $filename != "..")  
  189.                         $this -> deletedir($file . "/" . $filename);  
  190.                     }  
  191.                 closedir($handle);  
  192.                 rmdir($file);  
  193.                 return true;  
  194.                 }else{  
  195.                 unlink($file);  
  196.                 }  
  197.             }  
  198.         }  
  199.       
  200.     }  
  201. ?>  
<?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);
                }
            }
        }
    
    }
?>



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Php 生成静态html文件 总结有如下三种方法 1,下面使用模版的一个方法! <?php $fp = fopen ("templets.html","a"); if ($fp){ $fup = fread ($fp,filesize("templets.html")); $fp2 = fopen ("html.shtml","w"); if ($fwrite ($fp2,$fup)){ $fclose ($fp); $fcolse ($fp2); die ("写入模板成功"); } else { fclose ($fp); die ("写入模板失败!"); } } ?> 简单的将模板写进一个文件中存为html. 2,按时间生成html文件名 <? $content = "这是一个以日期时间为文件名的静态生成网页的测试文件,文件名格式一般为<font color=#ff0000>年月日时分秒.html</font>"; $date = date('YmdHis'); $fp = fopen (date('YmdHis') . '.html',"w");//本函数可用来打开本地或者远端的文件 'w' 开文件方式为写入,文件指针指到开始处,并将原文件的长度设为 0。若文件不存在,则建立新文件。 if (fwrite ($fp,$content)){//格式是.int fwrite(int fp(文件名), string string(内容), int [length](长度));本函数将字符串 string 写入文件资料流的指针 fp 上。若有指定长度 length,则会写入指定长度字符串,或是写到字符串结束。 fclose ($fp);//函数用来关闭已经打开的文件的指针 fp。成功返回 true,失败则返回 false。 die ("写入模板成功"); } else { fclose ($fp); die ("写入模板失败!"); } echo ($content); ?> 3,下面为转换文件名的一个方法 <?php $s_fname = "93e.php"; $o_fname = "93e.htm"; ob_end_clean(); ob_start(); include($s_fname); $length = ob_get_length(); $buffer = ob_get_contents(); $buffer = eregi_replace("r","",$buffer); ob_end_clean(); $fp = fopen($o_fname,"w+"); fwrite($fp,$buffer); fclose($fp); ?> 这样就可以把 93e.php转化为静态的HTML文件了 要注意的是待转换的文件里不能有 ob_end_clean();和 ob_start();语句。 且目录要有写权限。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值