PHP中的ZLIB支持是默认启用还是不启用?
在phpmanual的文档中说: 默认情况下,不启用PHP中的zlib支持.你需要 配置php -with-zlib [= dir] PHP的Windows版本对此扩展具有内置支持. 您无需加载任何其他扩展即可 这些功能. 因此,默认情况下应仅在php的Windows版本中启用它. . 但是我从存储库上的Linux计算机上安装了PHP和Apache,然后我注意到它已经启用了.使用这些命令: sudo apt-get install apache2 sudo apt-get install php5 php-pear 这是否意味着如果您从存储库安装PHP,默认情况下也可以启用? 还尝试在不添加--with-zlib[=DIR]配置的情况下安装源代码中的PHP,只是为了检查是否支持zlib.根据有关PHPMANUAL的文档. 我不是编译专家,因此我找到了从源代码安装PHP的教程,然后进行了下一步: apt-get install libxml
0 2023-05-30
编程技术问答社区
使用stream_filter_append and stream_copy_to_stream uncompress gzip
找到了这个: stream_filter_append($fp, 'zlib.inflate', STREAM_FILTER_* 怎么样 寻找另一种取消压缩数据的方法. $fp = fopen($src, 'rb'); $to = fopen($output, 'wb'); // some filtering here? stream_copy_to_stream($fp, $to); fclose($fp); fclose($to); 其中$src是http://.../file.gz的一个URL,例如200+ MB:) 添加了有效的测试代码,但分为2个步骤:
2 2023-05-29
编程技术问答社区
如何读取压缩文件中的单个文件
我需要在zip文件内读取单个文件的内容" test.txt".整个zip文件是一个非常大的文件(2GB),包含许多文件(10,000,000),因此,提取整个内容对我来说不是一个可行的解决方案.如何读取一个文件? 解决方案 尝试使用$handle = fopen('zip://test.zip#test.txt', 'r'); $result = ''; while (!feof($handle)) { $result .= fread($handle, 8192); } fclose($handle); echo $result; 您可以使用 file_get_contents 也: $result = file_get_contents('zip://test.zip#test.txt'); echo $result; 其他解决方案 请注意 @rocket-hazmat fopen如果用密码保护zip文件,解决方案可能会导致无限循环,因为fopen fope
0 2023-05-26
编程技术问答社区
提升IO流和ZLib的速度
我使用Boost iostreams和过滤流缓冲区的Zlib压缩了大量数据文件: boost::iostreams::array_source uncompressedArray( reinterpret_cast( &uncompressedData[0] ), uncompressedData.size() ); boost::iostreams::filtering_streambuf out; out.push( *m_compressor ); out.push( boost::iostreams::char_back_inserter( compressedData ) ); boost::iostreams::copy( uncompressedArray, out ); 为了速度,我正在使用以下来初始化Zlib库: boost::iostreams::zlib_para
4 2023-05-23
编程技术问答社区
提升IO流和ZLib的速度
我使用Boost iostreams和过滤流缓冲区的Zlib压缩了大量数据文件: boost::iostreams::array_source uncompressedArray( reinterpret_cast( &uncompressedData[0] ), uncompressedData.size() ); boost::iostreams::filtering_streambuf out; out.push( *m_compressor ); out.push( boost::iostreams::char_back_inserter( compressedData ) ); boost::iostreams::copy( uncompressedArray, out ); 为了速度,我正在使用以下来初始化Zlib库: boost::iostreams::zlib_para
2 2023-05-23
编程技术问答社区
zlib,deflate。要分配多少内存?
我正在使用 zlib 来压缩文本数据流.文本数据属于块,对于每个块,deflate()被称为Z_NO_FLUSH.一旦检索到所有块,deflate()被称为flush设置为Z_FINISH. 自然,deflate()在每个呼叫上不会产生压缩输出.它在内部积累数据以达到高压率.很好!每次deflate()都会产生压缩输出,该输出将附加到数据库字段 - 一个缓慢的过程. 但是,一旦deflate()产生压缩数据,该数据可能不适合提供的输出缓冲区deflate_out.因此,需要几个打电话给deflate().这就是我要避免的: 是否有一种方法可以使deflate_out始终足够大,以便deflate()可以将所有压缩数据存储在其中,每次决定产生输出? 注意: 未经压缩数据的总大小是 的事先已知的.如上所述,未压缩的数据是块的,并且压缩数据也附加到数据库字段,也位于块中. 在include file zconf.h我找到了以下评论.那也许是我想要的吗? IE
0 2023-05-23
编程技术问答社区
在压缩和加密时,我应该先压缩,还是先加密?
如果我要使用aes-contrypt文件,然后zlib-compress,则压缩效率会比我首先压缩然后加密的效率效率较低? 换句话说,我应该先压缩还是首先加密,还是重要? 解决方案 首先压缩.加密文件后,您将生成一个看似随机的数据流,这将不可压缩.压缩过程取决于在数据中查找可压缩模式. 其他解决方案 加密前的压缩肯定是更有效的空间,但同一时间降低了安全.这就是为什么我会不同意其他答案的原因. 大多数压缩算法都使用"魔术"文件标头,可以用于统计攻击. 例如,有一个犯罪SSL/TLS攻击. 其他解决方案 如果您的加密算法是任何好处(并且具有适当的链式模式的AES是好的),则没有压缩机能够缩小加密文本.或者,如果您更喜欢它:如果您成功地压缩了一些加密文本,那么现在是时候质疑加密算法的质量了…… 这是因为即使由确定的攻击者,加密系统的输出也应与纯粹的随机数据没有区别.压缩机不是恶意攻击者,但它通过尝试找到可以用更少的位来表示的非随机模式来起作用.压
2 2023-05-23
编程技术问答社区
Java中的gzinflate
因此,我的Java应用程序重新提供了一些使用PHP的gzdeflate()生成的数据. 现在,我试图用Java将这些数据夸大.这就是我到目前为止所拥有的: InflaterInputStream inflInstream = new InflaterInputStream(new ByteArrayInputStream(inputData.getBytes() ), new Inflater()); byte bytes[] = new byte[1024]; while (true) { int length = inflInstream.read(bytes, 0, 1024); if (length == -1) break; System.out.write(bytes, 0, length); } 'inputData'是一个包含放气数据的字符串. 问题是:. java.util.zip.zipexception:不正确的标
4 2023-05-23
编程技术问答社区
使用http2模块接收响应时解压gzip-NodeJS
const spdy = require("http2"); const zlib = require("zlib"); let payload = ">" const client = spdy.connect("https://>"); let outdata = ''; const req = client.request({ ":authority": ">", ":method": "POST", ":scheme": "https", ":path": ">", "accept-encoding": "gzip" }); req.setEncoding('utf8'); req.on("data", chunk => { chunk = chunk.toString("utf-8"); outdata +=
4 2023-05-22
编程技术问答社区
zLib膨胀在某些情况下有空的结果
我的程序处理PDF文件并从中读取一些流.那里也有FlateCoded Streams.我使用Zlib的" Aptrate()"方法解压缩. 这通常与以下代码非常有效: static string FlateDecode(string s){ int factor = 50; z_stream stream; while(true){ char * out = new char[s.length()*factor]; stream.zalloc = Z_NULL; stream.zfree = Z_NULL; stream.opaque = Z_NULL; stream.avail_in = s.length(); stream.next_in = (Bytef*)s.c_str(); stream.avail_out
0 2023-05-22
编程技术问答社区
为PDF解压缩和充气,使用zlib C++
我正在尝试实现" Zlib.h"放气并充气功能以压缩和解压缩流中PDF文件. 输入:PDF文件的压缩流.我实现了膨胀功能 - 没关系,我有未被印刷的流,之后我尝试通过缩放函数再次压缩此流,作为输出,我具有压缩流,但它不等于输入压缩流,它们并不等于长度.我在做什么错?这是我的代码的一部分: size_t outsize = (streamend - streamstart) * 10; char* output = new char[outsize]; ZeroMemory(output, outsize); z_stream zstrm; ZeroMemory(&zstrm, sizeof(zstrm)); zstrm.avail_in = streamend - streamstart + 1; zstrm.avail_out = outsize;
4 2023-05-22
编程技术问答社区
使用zlib从pdf中提取文本
我正在使用该功能在PDF文件中查找文本,然后用另一个文本替换该文本.问题是当我膨胀然后更改文本并放气时,在最终的PDF中,有时会错过一些文本或图形.这是我的代码或Zlib库中的错误,不支持此压缩或其他内容? // Open the PDF source file: FILE *pdfFile = fopen([sourceFile cStringUsingEncoding:NSUTF8StringEncoding], "rb"); if (pdfFile) { // Get the file length: int fseekres = fseek(pdfFile, 0, SEEK_END); if (fseekres != 0) { fclose(pdfFile); return nil; } long filelen = ftell(pdfFile); fseekres = fseek(pdf
0 2023-05-22
编程技术问答社区
解析zlib头文件
我花了几天的时间阅读Zlib(以及Gzip和Deflate)RFC,我可以说它们有点垃圾.缺少一些细节,所以我正在打开这个问题. 我正在尝试解析Zlib数据,我需要知道有关标题的一些细节. 首先,RFC说将有2个字节,CMF和FLG. CMF分为2 4位部分.第一个是CM,第二个是CINFO. CM的可能值是什么? RFC说8表示deflate,并且15保留了,但是其余的可能值呢? CINFO在另一边,如果我正确理解RFC,应该始终为8(如果我错了,请纠正我). 跳过FLG和可能的FDICT,我们进入Compressed data部分. RFC的这一部分说: For compression method 8, the compressed data is stored in the deflate compressed data format as described in the document "DEFLATE Compressed Dat
4 2023-05-20
编程技术问答社区
需要帮助解压存储在Aztec条形码中的zlib数据(德国铁路票)。
前提 我试图从德意志·巴恩(德国铁路)发行的门票上使用的条形码格式解码数据.我发现这个非常有用的网站(德语)已经做了类似的事情并提供一个网站指出数据被zlib压缩,生成的斑点与DSA签名,所有这些都存储在条形码(AZTEC格式)中. 问题 我已经使用了网站上提供的脚本来成功解码机票. 安装了Python-Pyasn1库.读取条形码(使用 bctester 根据说明,使用Neoreader App遇到了一些麻烦),并将结果转换为HEX.将十六进制数据保存为纯文本文件(由于脚本所需的某些原因),并用脚本解析文件.它起作用. 但是脚本做得太多了.我想自己做解析,但是我无法让Zlib减压工作,我对代码几乎没有理解. 我知道几乎没有python.我有一些编程经验. 如果您只是查看条形码中的数据,则看起来像这样: 第一个问题是: DSA签名是什么,我需要先与实际的压缩数据分开? 第二个: 一个简单的Python脚本看起来像是从文件中读取条形码斑点并简单地将其解压缩的内
2 2023-05-20
编程技术问答社区
在使用HTTPS模块的Node.JS应用程序中,来自Zlib.gunzip()的Incorect头检查错误。
我有一个node.js应用程序,我正在使用 https 模块将请求获取到Web服务器.响应中的标头将 content-type 设置为 gzip .我已经直接检查了数据,它似乎是压缩数据,绝对不是纯文本. 我在进来时积累了块.然后,我尝试使用ZLIB解压缩累积数据.到目前为止,我尝试的所有操作都会在执行解压缩调用时会导致"不正确的标头检查"错误.下面的代码显示了使用A buffer 对象将类型设置为 binary .我之前曾尝试将累积的数据直接传递到Decompression Call,但这也失败了. 为什么不起作用? // Make the request to the designated external server. const httpsRequest = https.request(postOptions, function(extRequest) { console.log('(httpsRequest) In reque
0 2023-05-16
编程技术问答社区
如何解析NodeJS中由外部api提交的gzipped数据
外部API将其结果以GZIP格式压缩到我的Postback_url.这是我在身体参数中得到的.顺便说一句,我缩短了输出,因为它是一个很长的字符串. body: 'H4sIAAAAAAAAA+z963bbuLIwir4Kk/5mYi1LDEndpVby6WrLtny3bDnulcGrRIsSZZK62dEY3xPsP+cdzivsMc7P/Sj7SU4VQFIkRTl2OumevWZmz1gkCBSAQqFuKABPb2eqZevm+G3pLcfyrMAJPJcXim+Tb21HdKb2F9lU1LclgYP/+Wkj1bbFPiS/PRmykNXRRyoFkBEKjK3KmCibtvO2BIUc0R4inOkY3nnvXbUs01p/f1v6/PRWVxBKgcvwGS6dyuTzQorjcrkUVp4SBEUuFCU1Vygq39k8rshvNs9S7anhBNo3EZ0BNOftLI3VqNYEfvqm2TdUeDCtvjjW5be02V/6qgOPA2dkwM+LWv5H8q
0 2023-05-16
编程技术问答社区
如何在Ruby Sinatra中读取GZIP有效载荷
在远程主机上,我有一个bash脚本,向我的ruby sinatra端点发送了一个简单的gzz yaml文件: #!/bin/bash /bin/gzip -c /tmp/test.yaml > /tmp/test.gz curl -i :/last_run_report -H "Content-Type: application/xml" -H "Content-Encoding: gzip" --data-binary @/tmp/test.gz 我的示例红宝石应用是: require 'sinatra' require 'zlib' require 'stringio' set :port, set :bind, "" post '/last_run_report' do sio = StringIO.new(request.body.to_s) gz = Zlib::GzipReader.new(
14 2023-05-16
编程技术问答社区
在Python 2.7中用zlib从一个URL中读取一个gzip文件
我正在尝试从URL读取GZIP文件,而无需保存Python 2.7中的临时文件.但是,由于某种原因,我得到了一个截断的文本文件.我花了很多时间在没有成功的情况下搜索网络以寻找解决方案.如果我将"原始"数据保存回GZIP文件,则没有截断(请参见下面的示例代码).我在做什么错? 我的示例代码: import urllib2 import zlib from StringIO import StringIO url = "ftp://ftp.ncbi.nih.gov/snp/organisms/human_9606/VCF/clinvar_00-latest.vcf.gz" # Create a opener opener = urllib2.build_opener() request = urllib2.Request(url) request.add_header('Accept-encoding', '
20 2023-05-16
编程技术问答社区