php - 打开一个 .gz 文件并读取/替换

标签 php gzip fopen fwrite

我找不到我需要的答案,所以我希望你明白我在找什么。

我需要能够打开一个 tar.gz 文件(从远程网站),读取文件,并在我的网站上复制/替换这些文件。我一直在尝试这段代码(以及无数其他代码):

$zipFile= 'http://awebsite.com/file.tar.gz';
$dir = 'myfolder';
$zp = @gzopen($zipFile, "r");
$fp = @fopen($dir, "w");
while(!@gzeof($zp)) {$string = @gzread($zp, 4096); @fwrite($fp, $string, strlen($string));}
@gzclose($zp);
@fclose($fp);

似乎所有人都提出了不同种类的错误。我似乎能够读取 zip 文件,但实际上无法将内容保存到我的网站。

提前感谢您的帮助。

克里托

最佳答案

除了解压,有效去除.gz后缀,还需要解析tar文件格式,有效去除.tar后缀。最简单的方法就是简单地使用 tar 程序本身。将您要拉取的内容通过管道传输到 tar,在您要更新的目录中运行。 Read the tar man page to see the appropriate options for how you want to update the files. (有很多选择。)

关于php - 打开一个 .gz 文件并读取/替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10377703/

相关文章:

c++ - feof() 未达到 EOF 时返回 true

c - 我的教授成功地运行了这段代码,但我不能。似乎是 fopen() 和指针的问题

php - getimagesize() 不适用于大图像 (640k+)

php - PHP 的 usort 适用于哪些排序算法?

c++ - 将文件从 Boost filtering_streambuf 解压到 std::vector<unsigned char>?

python - 如何使用 Python 解压缩 gz 文件

php - 为什么 fgetcsv() 函数将连续的 EMPTY 字段聚合到一个字段中,并将其放入一个数组位置?

php - 这是编辑/删除/更新其他对象中的对象集合的最佳方法

php - 检查用户名/密码是否与用户名/加密密码匹配。漩涡加密和盐

linux - tar:错误不可恢复:现在退出