php解压zip目录程序PHP unpack the zip directory program< html >
< head >
< meta http equiv = "content type" content = "text / html ;charset = gb2312" >
"style" type = "text / css" >
<! - - - - - - -a td (font size: 14px.color: # 000000.
}a {color: # 000066.text decoration: none;
}a: hover {color: # ff6600.
text decoration: underline.
}
. style3 {font family: georgia, times new roman, times, serif; "font size: xx - large.color: # 0000ff.
}body {background color: # 5d5d5d.
}
- >
< style >
< / head >
< body >the "form" myform "method =" post "=" rar.php "enctype ="mult ipart / form / data "
< table width = "100%" border = "0" cellspacing = "0"cellpadding = "4" >
< tr >
< td width=24%"nowrap >< / td >或上传文件【uploadzipf ile】< td width = "75%" >< input type = "file" in the "file" id ="file size =" ">< / td >
< / tr >
< tr >
< td >< input type = "submit" name = "submit" value = "解压[unpack" >< / td >
< / tr >
< table >
<?class zip
{var $_ files = 0.var $_ fol ders = 0.
the extract ($$$) , zn, index = array (- 1) ) .
{
$$$$$$$i = 0, fopen zip = (($zn, rb) .if ( ! $$$$$$(zip) return (1) ;ceo = $$$this - > readcentraldir zip, zn) .as ceo of _= $$[offset] .if ( ! i s _ array ($index) index = array ($$$$$$$(index) .for (i = 0; $$$$$$$$(index [] ; i + +) {if ($$intval index [i] ) . index ($i) = $$$( | | index [] > [$] ) ,under chief executive officerreturn (- 1) .
}for (i = 0; i < $$[under] ceo, $i + +) .
{the fseek ($$) as _ zip) .
$$$$$$$this header = > readcentralfileheaders (zip) .
header [index] $$$i = = ftell) , as _ (zip) .the rewind ($zip) fseek ($zip, header [offset]) .if, in _array (- 1, | | index) in _ array ($1, $index)$$$$$$$(a) header (' ] = $a $- $extractfile header, to $zip) .}fclose (zip) .return $1.
}readfileheader (zip) .
{
_ $data = fread (binary zip, 30) .unpack ($data = vchk / vid / vvers ion / vflag / vcompression/vmtime/vmdate/vcrc/vcompressed_size/vsize/vfilename_ len / vextra_ len, _ $binary data) .
(a) $header = fread ($$$$$$$(a) zip _ len] ) .if ($extra _ data [len] . = 0) {
the extra $header] = fread ($$$$$$$(zip) extra_ len]) .} else {$header ['extra' ] = ' ' )header compression [s] $$[compression]) ; $header [size] =$data [size] .the compressed_ $header size) = $data compressed_ [size] .header [crc] $= $data [crc] $[23] : header data ($23) .mdate header [$] =$mdate data [], [] . mtime header mtime=$data[] .if ($mdate header [] & [$header mtime]) {
$$$$$$$hour=mt ime header [] &0xf800) >>>>>>>= ($-$11, mtimeheader [] & 0x07e0) >>>>>>> 5.second=$$mtime header []&0x001f) *2= (($year, $mdate header[] & 0xfe00) >>>>>>> 9) + (1980) ;
$$$$$$$$= mdate header [] & 0x01e0) >>>>>>> = $5, $day mdateheader [] & 0x001f.
($mtime header mktime] =$$$) , second, minute, day, $$$, month,year) ;
} else {$mtime header [] = time () .a header stored _ [$] = $header [f ilename] .
[status] $header = "ok";return $header.
}readcentralfileheaders ($) (zip)
_ $data = fread (binary zip, 46) .header= ($unpack vchkid/vid/vversion/vversion_extracted/ vflag / vcompression / vmtime / vmdate / vcrc / vcompressed_ size / vsize / vf ilename _ len / vextra_ len / vcomment _len/vdisk/vinternal /vexternal /voffset, _$binary data) .if ($fi lename _ header [len] . = 0)
(a) $header = fread ($$$$$$$(zip, zip, zip, zip, a header _len] ) .a dangerous header [$] = ' ' .if ($_ header [len] extra! = 0)the extra$header] = fread ($$$$$$$(zip, extra header_len] ) .even with extra header [$] = ' ' .
- how_ ($header [len] . = 0)
$header [how] = fread (. zip, how _ header [len] ) .how else, header [$] ' .if ($mdate header [] & [$header mtime])
{
$$$$$$$hour = mt ime header [] & 0xf800) >>>>>>> 11.
- = ($$[] and mtime header 0x07e0) >>>>>>> 5.second = $$mtime header [] & 0x001f) * 2.
: = ($$[] and mdate header 0xfe00) >>>>>>> 9) + (1980) ;$$$$$$$$= mdate header [] & 0x01e0) >>>>>>> 5.per day = $header [] & 0x001f mdate.
($mtime header mktime] =$$$) , second, minute, day, $$$, month,year) ;
} else {mtime header [$] = time () .
}a header stored _ [$] = $header [f ilename] .
[status] $header. all right.if (substr ($header [f ilename] - 1) = = ' ' )
$$$$$$[external] = header 0x41ff0010.return $header.
}
(a) $$readcentraldir zip, zip, zip, zip, zip _ (name)$$$$$$$_ zip size = filesize) .if ($size (up to $277 _ size = $size.you can _ size = $277.the fseek ($zip size - up to $$_ size) .pos = $$$ftell bytes = 0x00000000 zip) .while ( (< $size) {byte = fread () $$$zip, 1) = ($bytes (bytes (8) | dsb ($byte) .if ($bytes = = = = 0x2e706870504b0506 0x504b0506 or $bytes){$pos + +; break; } $pos +.
}
老周互联怎么样?老周互联隶属于老周网络科技部旗下,创立于2019年12月份,是一家具有代表性的国人商家。目前主营的产品有云服务器,裸金属服务器。创办一年多以来,我们一直坚持以口碑至上,服务宗旨为理念,为用户提供7*24小时的轮班服务,目前已有上千多家中小型站长选择我们!服务宗旨:老周互联提供7*24小时轮流值班客服,用户24小时内咨询问题可提交工单,我们会在30分钟内为您快速解答!另免费部署服务器...
轻云互联成立于2018年的国人商家,广州轻云互联网络科技有限公司旗下品牌,主要从事VPS、虚拟主机等云计算产品业务,适合建站、新手上车的值得选择,香港三网直连(电信CN2GIA联通移动CN2直连);美国圣何塞(回程三网CN2GIA)线路,所有产品均采用KVM虚拟技术架构,高效售后保障,稳定多年,高性能可用,网络优质,为您的业务保驾护航。官方网站:点击进入广州轻云网络科技有限公司活动规则:用户购买任...
DMIT,最近动作频繁,前几天刚刚上架了日本lite版VPS,正在酝酿上线日本高级网络VPS,又差不多在同一时间推出了美国cn2 gia线路不限流量的美国云服务器,不过价格太过昂贵。丐版只有30M带宽,月付179.99 美元 !!目前美国云服务器已经有个4个套餐,分别是,Premium(cn2 gia线路)、Lite(普通直连)、Premium Secure(带高防的cn2 gia线路),Prem...