<?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
)
;
}
}
}
}
?>