PHP ファイルのオンライン解凍コード_PHP チュートリアル

WBOY
リリース: 2016-07-20 11:06:44
オリジナル
1000 人が閲覧しました

パブリック関数 ExtractFile($header,$to,$zip) {
$header = $this->readfileheader($zip);

if (substr($to,-1)!="/") $to .="/";
if ($to=='./') $to = '';
$pth =explode("/",$to.$header['filename']);
$mydir = '';
for($i=0;$i if (!$pth[$i]) continue;
$mydir .= $pth[$i] ."/";
if ((!is_dir($mydir) && @mkdir($mydir,0777)) || (($mydir==$to.$header['filename'] || ($mydir==) $to && $this->total_folders==0)) && is_dir($mydir)) ) {
@chmod($mydir,0777);
$this->total_folders ++;
echo '抽出 : ', $mydir,'
';
}
}

if (strrchr($header['filename'],'/')=='/') return;
if (!($header['external ']==0x41FF0010)&&!($header['external']==16)) {
if ($header['compression']==0) {
$fp = @fopen($to.$header[ 'filename'], 'wb');
if (!$fp) return(-1);
$size = $header['compressed_size'];
while ($size != 0) {
$read_size = ( $size $buffer = fread($zip, $read_size);
$binary_data = Pack('a'.$read_size, $buffer);
@fwrite($fp, $ binary_data, $read_size);
$size -= $read_size;
}
fclose($fp);
touch($to.$header['filename'], $header['mtime']);
} else {
$fp = @fopen($to.$header['filename'].'.gz','wb');
if (!$fp) return(-1);
$binary_data = Pack('va1a1Va1a1' 、0x8b1f, Chr($header['compression']),
Chr(0x00), time(), Chr(0x00), Chr(3));

fwrite($fp, $binary_data, 10);
$ size = $header['compressed_size'];

while ($size != 0) {
$read_size = ($size < 1024 ? $size : 1024);
$buffer = fread($zip, $read_size);
$binary_data = Pack('a'.$read_size, $buffer);
@fwrite($fp, $binary_data, $read_size);
$size -= $read_size;
}

$binary_data = Pack('VV', $header['crc'], $header['size']);
fwrite($fp, $binary_data,8); fclose($fp);

$gzp = @gzopen($to.$header['filename'].'.gz','rb') または die("Cette archive est compress

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445020.html技術記事 public function ExtractFile($header,$to,$zip) { $header = $this-readfileheader($zip); if (substr($to,-1)!=/) $to.=/; if ($to=='./') $to = ''; $pth =explode(/,$to.$header['ファイル名...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート