web-dev-qa-db-ja.com

phpを使用してgzipファイルを抽出または解凍するにはどうすればよいですか?

function uncompress($srcName, $dstName) {
    $sfp = gzopen($srcName, "rb");
    $fp = fopen($dstName, "w");

    while ($string = gzread($sfp, 4096)) {
        fwrite($fp, $string, strlen($string));
    }
    gzclose($sfp);
    fclose($fp);
}

私はこのコードを試しましたが、これは機能しません、私は得る:

内部サーバーエラー
サーバーで内部エラーまたは設定ミスが発生したため、リクエストを完了できませんでした。サーバー管理者[email protected]に連絡して、エラーが発生した時間と、エラーの原因となった可能性のあることを伝えてください。このエラーに関する詳細情報は、サーバーエラーログで参照できます。
さらに、ErrorDocumentを使用してリクエストを処理しようとしたときに404 Not Foundエラーが発生しました。

30

これを見つけてみてください こちら

//This input should be from somewhere else, hard-coded in this example
$file_name = '2013-07-16.dump.gz';

// Raising this value may increase performance
$buffer_size = 4096; // read 4kb at a time
$out_file_name = str_replace('.gz', '', $file_name); 

// Open our files (in binary mode)
$file = gzopen($file_name, 'rb');
$out_file = fopen($out_file_name, 'wb'); 

// Keep repeating until the end of the input file
while (!gzeof($file)) {
    // Read buffer-size bytes
    // Both fwrite and gzread and binary-safe
    fwrite($out_file, gzread($file, $buffer_size));
}

// Files are done, close files
fclose($out_file);
gzclose($file);
68
Vasu