【问题标题】:Get contents from gzipped file从 gzip 文件中获取内容
【发布时间】:2016-08-10 07:03:20
【问题描述】:

我正在尝试从使用 Mailchimp API 执行批处理操作请求后返回给我的 gzip 压缩文件中获取内容。我希望只得到一个 JSON 字符串作为响应,但也会收到一堆数字和随机 (?) 字符串。

这就是我的工作。

$gz = gzopen($response->response_body_url, "r");
$contents = trim(gzread($gz, 10000));
print_r($contents); //see output below
gzclose($gz);

这是归还给我的。

0000777000000000000000000000000012705141572007721 5ustar rootroot./05fa27ceab.json0000666000000000000000000000121212705141572012327 0ustar rootroot[{"status_code":400,"operation_id":null,"response":"{\"type\":\"http://developer.mailchimp.com/documentation/mailchimp/guides/error-词汇表/\",\"title\":\"会员 存在\",\"状态\":400,\"详细信息\":\"xxxx.xxxx@xxxx.xx 是 已经是列表成员。使用 PUT 插入或更新列表 成员。\",\"instance\":\"\"}"},{"status_code":400,"operation_id":null,"response":"{\"type\":\"http:// developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/\",\"title\":\"会员 Exists\",\"status\":400,\"detail\":\"xxxx2.xxxx2@xxxx2.xx 是 已经是列表成员。使用 PUT 插入或更新列表 成员。\",\"实例\":\"\"}"}]

我在这里缺少什么?为什么它不起作用?

【问题讨论】:

  • 它真的是一个 gzip 压缩文件还是仅仅是 http 响应被压缩了?
  • 嗯,这实际上就是我所做的一切。 $response->response_body_url 包含 zip 所在的 URL。从我的浏览器下载并打开它工作正常。我尝试了很多不同的方法。这似乎是最接近的,因为实际的 JSON 字符串在那里。不幸的是,我无法告诉你它是否泄气了......?
  • 如果可能的话,您能否发布一个指向该文件的链接?
  • 相信我,如果可以的话,我会的。但它包含一些我不确定我应该在这里分享的信息......:/很抱歉没有帮助。我似乎也找不到任何有类似问题的人:/
  • 对下载的文件进行一些编辑的内容可以吗?

标签: php gzip mailchimp


【解决方案1】:

看起来您可能正在处理 .tar.gz 文件,而不仅仅是 gzip。最简单的方法是使用 PharData 扩展名或将其保存到磁盘并使用 shell 工具解压缩。

Here's an answer to a question on how to deal with .tar.gz files in php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 2022-07-10
    • 1970-01-01
    相关资源
    最近更新 更多