当前位置:首页 > WEB开发源代码:PHP生成静态页面的类

WEB开发源代码:PHP生成静态页面的类

点击次数:1309  更新日期:2011-01-04
\n

以下是引用片段:
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


\n

function html(nametype=’name’,dirtype=’year’,rootdir=’html’)


\n


function setvar(nametype=’name’,dirtype=’year’,rootdir=’html’)


\n


function createdir(dir=”)
{
this->dir=dir?dir:this->dir;


\n

if (!is_dir(this->dir))
{
temp = explode(‘/’,this->dir);
cur_dir = ”;
for(i=0;i {
cur_dir .= temp[i].’/\';
if (!is_dir(cur_dir))


\n

}
}
}


\n

function getdir(dirname=”,time=0)
{
this->time=time?time:this->time;
this->dirname=dirname?dirname:this->dirname;


\n

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;


\n

case ‘month’:
this->dir=this->rootdir.’/’.date(“Y-m”,this->time);
break;


\n

case ‘day’:
this->dir=this->rootdir.’/’.date(“Y-m-d”,this->time);
break;
}


\n

this->createdir();


\n

return this->dir;
}


\n

function geturlname(url=”)
{
this->url=url?url:this->url;


\n

filename=basename(this->url);
filename=explode(“.”,filename);
return filename[0];
}


\n

function geturlquery(url=”)
{
this->url=url?url:this->url;


\n

durl=parse_url(this->url);
durl=explode(“&”,durl[query]);
foreach(durl as surl)


\n

return join(“_”,eurl);
}


\n

function getname(url=”,time=0,dirname=”)
{
this->url=url?url:this->url;
this->dirname=dirname?dirname:this->dirname;
this->time=time?time:this->time;


\n

this->getdir();


\n

switch(this->nametype)
{
case ‘name’:
filename=this->geturlname().’.htm’;
this->name=this->dir.’/’.filename;
break;


\n

case ‘time’:
this->name=this->dir.’/’.this->time.’.htm’;
break;


\n

case ‘query’:
this->name=this->dir.’/’.this->geturlquery().’.htm’;
break;


\n

case ‘namequery’:
this->name=this->dir.’/’.this->geturlname().’-’.this->geturlquery().’.htm’;
break;


\n

case ‘nametime’:
this->name=this->dir.’/’.this->geturlname().’-’.this->time.’.htm’;
break;


\n

}
return this->name;
}


\n

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


\n

content=file(this->url) or die(“Failed to open the url “.this->url.” !”);;


\n

///////////////关键步—用file读取this->url


\n


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


\n

function deletehtml(url=”,time=0,dirname=”)
{
this->url=url?url:this->url;
this->time=time?time:this->time;


\n

this->getname();


\n

if(@unlink(this->name))
return true;
else
return false;
}


\n

/**
* function::deletedir()
* 删除目录
* @param file 目录名(不带/)
* @return
*/
function deletedir(file)
{
if(file_exists(file))
{
if(is_dir(file))
{
handle =opendir(file);
while(false!==(filename=readdir(handle)))


\n

closedir(handle);
rmdir(file);
return true;
}else
}
}


\n

}
?>

\n