代码之家  ›  专栏  ›  技术社区  ›  Chris Thompson

PHP可以解压缩用.NET gzipstream类压缩的文件吗?

  •  2
  • Chris Thompson  · 技术社区  · 15 年前

    我有一个C应用程序,它与基于PHP的SOAP Web服务通信,以获取更新和许可。

    我现在正在开发一个反馈系统,用户可以通过该软件自动提交错误和跟踪日志。基于我之前发布的一个问题,我认为Web服务是实现这一点的最佳方法(最有可能在配置最少的情况下正常工作)。

    我目前的想法是使用.NET内置的gzip压缩来压缩文本文件,转换为base64,发送到Web服务,并让php脚本转换为二进制并解压缩数据。

    PHP可以用gzipstream解压数据吗?如果可以,如何解压?

    5 回复  |  直到 15 年前
        1
  •  6
  •   sanxiyn    15 年前

    我真的试过这个。gzipstream不工作。另一方面,在.NET端使用deflatestream进行压缩,在PHP端使用gzinflat进行解压缩都是有效的。您的里程可能会有所不同…

        2
  •  1
  •   troelskn    15 年前

    如果HTTP级别库实现了它(客户机和服务器), http has support for gzip-compression 在这种情况下,没有理由手动压缩任何内容。在你进一步冒险之前,你应该检查一下这是否已经发生了。

        3
  •  0
  •   mP.    15 年前

    因为服务器正在接受Web请求,所以您应该检查HTTP头,以确定是否有任何客户端接受gzip编码,而不是每次都猜测和gzip。

    如果PHP客户机可以执行gzip,它将设置头,然后您的代码将根据并执行正确的操作。当为代码提供了学习客户机功能的工具时,假设或猜测是一个糟糕的选择。

        4
  •  0
  •   Jim Scott    15 年前

    我最近发表了一篇文章,展示了如何在C中压缩/解压缩。我把它用于几乎相同的场景。我想将日志文件从客户机传输到服务器,它们通常很大。但是在我的例子中,我的WebService是在.NET中运行的,所以我可以使用解压缩方法。但看起来PHP确实支持一个名为gzdecode的方法。

    http://coding.infoconex.com/post/2009/05/Compress-and-Decompress-using-net-framework-and-built-in-GZipStream.aspx

        5
  •  0
  •   thomasrutter    7 年前

    是的,PHP可以解压gzip压缩字符串,包括或不包括头。

    我不知道你想要哪一个,因为我不熟悉.NET gzipstream。听起来有点像gzumpress,因为zlib格式是一种“流式”格式,但请尝试这三种格式。