Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php和golang之间的lz4问题_Php_Go_Lz4 - Fatal编程技术网

php和golang之间的lz4问题

php和golang之间的lz4问题,php,go,lz4,Php,Go,Lz4,我尝试在php中使用lz4_compress压缩数据,在golang中使用解压缩数据 但它失败了 似乎lz4_compress输出遗漏了lz4报头,块数据差别不大 请帮我解决这个问题 <?php echo base64_encode(lz4_compress("Hello World!")); ?> 输出: [11000 0 11000000 1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010

我尝试在php中使用lz4_compress压缩数据,在golang中使用解压缩数据

但它失败了

似乎lz4_compress输出遗漏了lz4报头,块数据差别不大

请帮我解决这个问题

<?php
echo base64_encode(lz4_compress("Hello World!"));
?>
输出:

[11000 0 11000000 1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 100001]


[100 100010 1001101 11000 1100100 1110000 10111001 11000 10000000 1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 100001]

听起来不错!现在试试看

echo -n DAAAAMBIZWxsbyBXb3JsZCE= | base64 -d

我得到的前4个字节是写0C000的-这是字符串的长度,其余的是Hello World!。因此,我认为,如果php意识到压缩如此短的输入是不可能的,它会编写输入(尝试
echo-n“Hello World!”| lz4c
)。但问题是它不允许你们认识这样的事情,或者我错了

听起来不错!现在试试看

echo -n DAAAAMBIZWxsbyBXb3JsZCE= | base64 -d
我得到的前4个字节是写0C000的-这是字符串的长度,其余的是Hello World!。因此,我认为,如果php意识到压缩如此短的输入是不可能的,它会编写输入(尝试
echo-n“Hello World!”| lz4c
)。但问题是它不允许你们认识这样的事情,或者我错了

明确地说

h提供块压缩功能。它为用户提供了完全的缓冲控制

解压缩lz4压缩块还需要元数据(如压缩大小)。每个应用程序都可以自由地以它想要的任何方式对这些元数据进行编码

另一种格式,称为LZ4帧规范(doc/LZ4_frame_format.md), 注意编码LZ4压缩块旁边的标准元数据。如果您的应用程序需要互操作性,建议使用它。提供了一个库来处理它,请参见lz4frame.h

PHP扩展不能做到这一点

显式地将PHP扩展列为不可互操作(在“Customs LZ4端口和绑定”部分)。

明确地说

h提供块压缩功能。它为用户提供了完全的缓冲控制

解压缩lz4压缩块还需要元数据(如压缩大小)。每个应用程序都可以自由地以它想要的任何方式对这些元数据进行编码

另一种格式,称为LZ4帧规范(doc/LZ4_frame_format.md), 注意编码LZ4压缩块旁边的标准元数据。如果您的应用程序需要互操作性,建议使用它。提供了一个库来处理它,请参见lz4frame.h

PHP扩展不能做到这一点


显式地将PHP扩展列为不可互操作(在“Customs LZ4 ports and bindings”一节中)。

这似乎只是一个PHP问题,Go输出看起来是正确的。PHP扩展看起来毫无疑问。这似乎只是一个PHP问题,Go输出看起来是正确的,PHP扩展名看起来毫无疑问。