`

生成静态页面的PHP类

    博客分类:
  • php
阅读更多
<?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);
            
}
        
}
    
}
 
}
?>
分享到:
评论

相关推荐

    把php生成静态(html)页面程序类

    把php生成静态(html)页面程序类 private $template; //模版 private $file_name; //文件名 private $array; //数据数组 function __construct($file_name, $template, $array) { //构造类 $this-&gt;...

    最简单的php生成静态页的类

    2. `htmlpage.php`:这是核心的PHP类文件,它包含了生成静态页面的逻辑。这个类可能会包含以下功能: - 读取动态数据:通过数据库查询或者其他方式获取需要展示的数据。 - 处理数据:格式化、过滤或者进行其他操作...

    php静态 页面生成

    2. 执行需要生成静态页面的PHP代码。 3. 定义静态HTML文件的名称。 4. 写入缓冲区内容到静态HTML文件。 5. 关闭文件。 6. 返回缓冲区内容给浏览器。 这种方法虽然简单有效,但也有其局限性,例如无法自动更新静态...

    把php生成静态(html)页面程序类.zip

    生成静态页面的PHP类通常包含以下功能: 1. **分析URL**:类会解析动态URL,识别出需要的参数和动态部分,以便于生成对应的HTML文件。 2. **数据获取**:在生成静态页面之前,类需要获取必要的数据。这可能涉及到...

    php生成静态页面源码

    当我们谈论"PHP生成静态页面源码"时,我们是指通过PHP脚本将动态内容转化为HTML文件,这些HTML文件可以独立存在于服务器上,不依赖数据库或PHP解释器来展示内容。这种方式有助于提高网站的加载速度,减轻服务器负担...

    PHP生成静态页面小程序 v1.1.zip

    至此,关于PHP生成静态页面的原理都在程序里面了,我把一些核心说明也写在了博客上面,有不懂的可以参考一下。   因为考虑到PHP新手用户针对PHP简单源码的需求,这个版本除了在生成静态原理核心代码上有所加强外...

    php生成静态页面类

    PHP 生成静态页面是一种常见的优化网站性能的技术,它将动态内容转化为静态HTML文件,以便用户在后续访问时直接加载已生成的页面,而无需每次都执行PHP脚本。这个过程可以提高网页加载速度,减轻服务器负担。下面将...

    php 生成静态文件

    标题中的"php 生成静态文件"指的是使用PHP编写一个类或者脚本来动态生成HTML等静态文件,以便后续的用户请求可以直接读取这些预先生成的文件,而无需每次都执行PHP代码。 描述中提到的这个类主要用于生成静态缓存...

    自动生成静态页面

    自动生成静态页面是一种提高网站性能和安全性的重要技术。在现代Web开发中,静态页面是指HTML、CSS和JavaScript等文件在用户请求之前就已经存在于服务器上,而不是由动态脚本(如PHP、Python或Ruby)实时生成。这种...

    PHP生成静态页面小程序

    在这个"PHP生成静态页面小程序"中,我们探讨的是如何利用PHP技术将原本动态生成的网页转换为HTML静态页面,以提高网站性能,减轻服务器负担,并优化搜索引擎排名。 首先,我们要理解动态页面与静态页面的区别。动态...

    PHP生成静态页面(ob_start+smarty)生成

    【PHP生成静态页面】生成静态页面是提高网站性能和SEO优化的一种常见方法,它通过将动态内容转换为静态HTML文件,使得用户可以直接访问已生成的HTML,减轻服务器负担。本篇将详细介绍一种基于`ob_start()`和Smarty...

    php生成静态文件 php生成html文件

    在PHP开发中,生成静态文件,尤其是HTML文件,是一种常见的优化网站性能的技术。这主要得益于静态HTML文件可以被浏览器直接缓存,减少服务器处理请求的压力,同时提高页面加载速度。本篇文章将深入探讨如何利用PHP的...

    java生成静态页面的思路

    在Java编程领域,生成静态页面是一项常见的任务,尤其在构建网站、文档系统或者API文档时。这个过程通常涉及将动态内容转化为HTML格式的静态文件,以便于提高网站的加载速度和减少服务器负担。本篇文章将深入探讨...

    PHP 生成静态页类

    首先,我们需要了解生成静态页面的基本流程: 1. **接收请求**:当用户访问动态页面时,服务器接收到请求。 2. **处理请求**:PHP脚本根据请求参数执行相应的业务逻辑。 3. **生成HTML**:PHP动态生成HTML内容。 4. ...

    通过URL生成静态页面

    在IT行业中,生成静态页面是一种常见的优化网站性能和提高用户体验的技术。标题“通过URL生成静态页面”揭示了这个话题的核心,即利用特定的URL来创建HTML文件,这些文件不依赖服务器端的动态处理,而是预先生成并...

    新闻源码 生成静态页面

    新闻源码生成静态页面是一个常见的网站开发技术,它涉及到网页设计、前端开发和服务器管理等多个IT领域的知识点。这里,我们将详细探讨这个主题。 首先,我们要理解什么是“新闻源码”。在网页开发中,源码指的是...

    动态生成静态HTML

    - 更新策略:当动态数据发生变化时,需及时重新生成静态页面。 - 缓存管理:利用缓存技术减少不必要的动态生成,提高效率。 通过学习和实践动态生成静态HTML的C#源码,不仅可以提升个人的Web开发技能,还能为实际...

Global site tag (gtag.js) - Google Analytics