Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)归海一刀
published in(发表于) 2014/2/17 7:40:46
WEB开发源代码:PHP生成静态页面的类_[PHP教程]

WEB开发源代码: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')



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



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


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


}
}
}


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)


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)))


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


}
?>







If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759