Rumah > Soal Jawab > teks badan
Kini saya telah memperoleh fail .gz projek melalui url
Saya mahu memproses kandungan fail mampat yang dinyahmampat
Sekarang saya tahu satu cara, iaitu menggunakan php untuk memanggil perintah sistem linux tar untuk menyahmampat dan kemudian memproses data
Saya ingin bertanya kepada rakan-rakan jika mereka pernah berurusan dengannya sebelum ini.
Ini adalah kenalan pertama saya, sila beri saya nasihat!
仅有的幸福2017-06-08 11:03:56
php sokongan bunyi asal, berikut adalah dari SO
// This input should be from somewhere else, hard-coded in this example
$file_name = 'file.txt.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);
学习ing2017-06-08 11:03:56
Generalphp
安装都自带tar
的扩展包,这是我项目中tar
fungsi penyahmampatan, untuk rujukan sahaja
function get_files_name_in_tar($file) {
require_once 'Archive/Tar.php';
$ext = get_file_extension($file);
$tar_handle = null;
if ($ext === "bz2") {
$tar_handle = new Archive_Tar($file, "bz2");
} else if ($ext === "gz") {
$tar_handle = new Archive_Tar($file, "gz");
} else if ($ext === "tar") {
$tar_handle = new Archive_Tar($file);
} else {
return false;
}
if (!$tar_handle) {
return false;
}
$entry_names = $tar_handle->listContent();
return array_column($entry_names, 'filename');
}
Juga rujuk: Tiga cara untuk menyahmampat format tar PHP
Anda juga boleh melaksanakannya melaluilinux
,在php
中调用linux
命令tar
然后exec