脚本宝典收集整理的这篇文章主要介绍了在PHP中解压缩LZO流,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经安装了PHP-LZO extension,它允许我做lzo_decomPress($data),但由于我正在处理流而不是完整的文件内容,我假设我需要一次使用字符串一个LZO压缩块.换句话说,我想做的事情如下:
$s3 = S3Client::factory( $myAwsCredentials ); $s3->registerStreamWrapPEr(); $stream = fopen("s3://my_bucket/my_LOGfile",'r'); $comPRessed_data = ''; while (!feof($stream)) { $compressed_data .= fread($stream,1024); // TODO: determine if we have a full LZO block yet if (contains_full_lzo_block($compressed_data)) { // TODO: extract the LZO block $lzo_block = get_lzo_block($compressed_data); $input = lzo_decompress( $lzo_block ); // ...... and do stuff to the decompressed input } } fclose($stream);
这两个TODO是我不确定该做什么的地方:
>检查数据流以确定我是否还有一个完整的LZO块
>提取此块以进行解压缩
由于压缩是由亚马逊(s3distCp)完成的,因此我无法控制块大小,因此我可能需要检查传入流以确定块的大小 – 这是正确的假设吗?
$command = 'gunzip -c /path/src /path/dest'; $escapedCommand = escapeshellcmd($command); system($escapedCommand);
或者也
shell_exec('gunzip -c /path/src /path/dest');
会做的工作.
现在这是一个要执行什么命令的问题,在Linux下有一个很好的命令行工具lzop,它提取或压缩lzop文件.
您可以通过以下方式使用它:
lzop -dN sources.lzo
shell_exec('lzop -dN s3://my_bucket/my_logfile');
以上是脚本宝典为你收集整理的在PHP中解压缩LZO流全部内容,希望文章能够帮你解决在PHP中解压缩LZO流所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。