将 zlib 缩小的数据从 PHP 传递到 node.js
Passing zlib deflated data from PHP to node.js
我正在尝试压缩 PHP 中的一个非常大的字符串,然后通过 http 将其传递到节点服务器,然后对其进行膨胀并在其上做一些业务。我的问题是 deflate/inflate.
我尝试使用 PHP gzencode 以及 gzcompress 将字符串作为唯一参数传递。然后我尝试使用以下方法之一在节点中对其进行充气:
zlib.inflateSync(new Buffer(attachment.content)).toString()
以及
zlib.inflateRawSync(new Buffer(attachment.content)).toString()
我已经尝试了 gzencode/gzompress 和 zlib.inflateSync/zlig.inflateRawSync 的所有排列。我尝试的任何事情我总是从节点得到两个错误之一:
Error: incorrect header check
或
Error: invalid code lengths set
我已经确认 attachment.content 变量包含我来自 php 的 gzcompress 或 gzencode 数据,所以这不是我试图膨胀错误变量的问题。此外,我正在放气的原始字符串是一个大的 CSV 字符串。我很茫然。
ps。 PHP 5.6.16 和节点 0.12.7(是的,我知道)。
gzcompress()
生成与 zlib.inflateSync()
兼容的 zlib 流。 gzdeflate()
生成与 zlib.inflateRawSync()
兼容的原始放气。 gzencode()
生成 gzip 流,与 zlib.gunzipSync()
.
兼容
如果上述兼容组合不起作用,则很可能是数据因介于两者之间的某处转换而损坏。
我正在尝试压缩 PHP 中的一个非常大的字符串,然后通过 http 将其传递到节点服务器,然后对其进行膨胀并在其上做一些业务。我的问题是 deflate/inflate.
我尝试使用 PHP gzencode 以及 gzcompress 将字符串作为唯一参数传递。然后我尝试使用以下方法之一在节点中对其进行充气:
zlib.inflateSync(new Buffer(attachment.content)).toString()
以及
zlib.inflateRawSync(new Buffer(attachment.content)).toString()
我已经尝试了 gzencode/gzompress 和 zlib.inflateSync/zlig.inflateRawSync 的所有排列。我尝试的任何事情我总是从节点得到两个错误之一:
Error: incorrect header check
或
Error: invalid code lengths set
我已经确认 attachment.content 变量包含我来自 php 的 gzcompress 或 gzencode 数据,所以这不是我试图膨胀错误变量的问题。此外,我正在放气的原始字符串是一个大的 CSV 字符串。我很茫然。
ps。 PHP 5.6.16 和节点 0.12.7(是的,我知道)。
gzcompress()
生成与 zlib.inflateSync()
兼容的 zlib 流。 gzdeflate()
生成与 zlib.inflateRawSync()
兼容的原始放气。 gzencode()
生成 gzip 流,与 zlib.gunzipSync()
.
如果上述兼容组合不起作用,则很可能是数据因介于两者之间的某处转换而损坏。