我加了
php_flag zlib.output_compression off
Run Code Online (Sandbox Code Playgroud)
到我的.htaccess。我读到如果我想让 mod_deflate 工作,需要禁用 PHP 压缩。
有什么方法可以测试PHP压缩是否真的被禁用了?
我正在阅读 zlib 的文档,它相当详细。但我读到这一行:
输出数据将采用zlib格式,不同于 gzip 或zip格式
http://www.zlib.net/zlib_how.html
似乎 zlib 创建的zlib格式与本 SO 中讨论的zip格式不同:
zlib、gzip 和 zip 有什么关系?它们有什么共同点,又有什么不同?
任何人都知道是否可以使用 zlib 创建 zip 格式?如何?
我正在从可能被压缩的服务器下载内容,所以我使用了我在不同地方找到的这个样板:
var file = fs.createWriteStream(filename);
var request = https.get(url, function(response) {
switch (response.headers['content-encoding']) {
case 'gzip':
response.pipe(zlib.createGunzip()).pipe(file);
break;
case 'deflate':
response.pipe(zlib.createInflate()).pipe(file);
break;
default:
response.pipe(file);
break;
}
file.on('finish', function() {
console.log("Done: "+url);
file.close(function() {});
});
}).on('error', function(err) { // Handle errors
fs.unlink(filename, function() {});
console.log(err+" "+url);
});
Run Code Online (Sandbox Code Playgroud)
问题是,如果 HTTPS 请求因网络错误而失败,我有时会抛出此异常:
Error: unexpected end of file
at Zlib._handle.onerror (zlib.js:363:17)
Run Code Online (Sandbox Code Playgroud)
该“错误”事件处理程序不会捕获异常。那么我如何捕获它,以便我可以正确清理文件并知道再试一次?
zlib 的 crc32_combine() 使用 crcA、crcB 和 lengthB 来计算 crcAB。
# returns crcAB
crc32_combine(crcA, crcB, lenB)
Run Code Online (Sandbox Code Playgroud)
使用 Mark Adler在这里和这里的精彩帖子中的概念,我能够生成crc32_trim_trailing.pl,它采用 crcAB、crcB 和 lengthB 来计算 crcA(我用它来剥离已知长度和值的填充)。
# prints crcA
perl crc32_trim_trailing.pl $crcAB $crcB $lenB
Run Code Online (Sandbox Code Playgroud)
不幸的是,这使用了所描述的慢速方法的原则,其中每个空字节必须一次剥离一个。它很慢,但很好地证明了概念。
我一直在努力制作 crc32_trim_trailing 的快速版本,它利用 Mark 的帖子中描述的矩阵技巧,并为 zlib 的 crc32_combine() 中的组合用例实现。
这是我在 crc32_trim_trailing.c 上的尝试。
/* crc32_trim_trailing.c
This code is borrows heavily from crc32.c from zlib version 1.2.8, but has
been altered.
*/
#include <stdio.h>
#define GF2_DIM 32 /* dimension of GF(2) vectors (length of …Run Code Online (Sandbox Code Playgroud) 我决定使用 emscripten 移植一些使用 zlib 的程序。配置失败,因为它抱怨我的系统上没有 zlib。
但:
>ls ~/.emscripten_ports/
freetype libpng sdl2 sdl2-image.zip sdl2-ttf.zip zlib
freetype.zip libpng.zip sdl2-image sdl2-ttf sdl2.zip zlib.zip
Run Code Online (Sandbox Code Playgroud)
和:
> ls ~/.emscripten_cache/asmjs/
dlmalloc.bc libc.bc libcxx_noexcept.a sdl2.bc sdl2-ttf.bc
freetype.bc libcxx.a libpng.bc sdl2-image.bc wasm-libc.bc
gl.bc libcxxabi.bc ports-builds sdl2-image-png.bc zlib.bc
Run Code Online (Sandbox Code Playgroud)
和:
> ls ~/.emscripten_cache/asmjs/ports-builds/
freetype include libpng sdl2 sdl2-image sdl2-ttf zlib
Run Code Online (Sandbox Code Playgroud)
我可以使用 --with-libzlib=dir 指定 zlib 的路径
如何配置这个项目?如果这些信息有帮助,我会编译 lincity。
我自己编译了 zlib,使用 emscripten。
emconfigure ./cofigure --prefix=$PATH_TO_SYSTEM_DIR_IN_EMSCRIPTEN
emmake make
emmake make install
Run Code Online (Sandbox Code Playgroud)
我不知道它有效,但是 lincity 的配置并没有抱怨缺少 zlib。它抱怨缺少 libxml-2 并且 libxml-2 需要 python2,所以我放弃了。把这个放在答案中?
我是 swift/xcode 的新手,我正在尝试使用 crc32 函数,正如这里提到的,它是在 libz.dylib 的 zlib 中提供的。
我已经修改了代码,以便我现在尝试:
let message1 = "some message".first?.value!.data(using: String.Encoding.utf8, allowLossyConversion: false)
let crc = crc32(CLong(0), UnsafePointer<Bytef>(strcat!.bytes), UInt(message1!.length))
但是我遇到了错误:use of unresolved identifier 'crc32'。
谁能帮我弄清楚在尝试使用 crc32 函数时我可能会遗漏哪一步?
谢谢!
我试图安装该工具shmutzi在Ubuntu 18.04.2。我已经从 git 克隆它,安装了所有依赖项(除了 zlib,apt install 没有找到,我知道它包含在 zlib1g-dev 中)。
当我尝试使用make该工具时,我得到了这个:
$ make
make -C src/
make[1]: Entering directory '/home/nextgen/src/schmutzi/src'
cd ../lib/bamtools// && mkdir -p build/ && cd build/ && cmake .. && make && cd ../../../src/
-- Checking for one of the modules 'jsoncpp>=1'
Did NOT find system JsonCpp, instead using bundled version
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find ZLIB (missing: ZLIB_LIBRARY) (found version "1.2.11")
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.10/Modules/FindZLIB.cmake:112 …Run Code Online (Sandbox Code Playgroud) 我正在阅读这篇文章(https://www.smashingmagazine.com/2019/04/webassembly-speed-web-app/),其中解释了他们如何使用 zlib 等来加速他们的 Web 项目:
为了支持 zlib 库,我们使用标志 USE_ZLIB;zlib 是如此普遍以至于它已经被移植到 WebAssembly,并且 Emscripten 会在我们的项目中为我们包含它
我想在我自己的 WASM 模块中使用 zlib。
在我的 C 代码(用 emcc 编译)中,我编写了这个接口函数:
#include <zlib.h>
int pcf_decompress_zlib(unsigned char *input, int input_length, unsigned char *output, int output_length)
{
uLongf output_length_result = output_length;
int result = uncompress(output, &output_length_result, input, input_length);
if (result != Z_OK) {
return 0;
} else {
return output_length_result;
}
}
Run Code Online (Sandbox Code Playgroud)
我是这样编译的:
emcc decompress.c -O3 -s WASM=1 -s SIDE_MODULE=1 -s "EXPORTED_FUNCTIONS=['_pcf_decompress_zlib']" -s USE_ZLIB=1 -o decompress.wasm
Run Code Online (Sandbox Code Playgroud)
当我这样做时,emcc 自动下载到一个 zlib …
我正在使用 macOS Catalina。我正在尝试通过 rbenv 安装旧版本的 Ruby(1.9.3、2.1.2)。但是,在尝试安装旧版本时,我不断收到以下错误。*安装 2.4 或更高版本时没问题。
我已经试过了
brew install openssl
brew install readline
brew install zlib
Run Code Online (Sandbox Code Playgroud)
以及 brew 更新。我已经安装并更新了所有内容,但仍然出现以下错误。
我也试过用配置选项安装
RUBY_CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl`" rbenv install 2.1.2
Run Code Online (Sandbox Code Playgroud)
请让我知道如何解决这个问题。
ruby-build:使用自制软件中的 readline
构建失败(Mac OS X 10.15.7 使用 ruby-build 20201005)
检查或清理工作树在/var/folders/80/ts3rxpm5199g71p1vm4xzydj03b4g3/T/ruby-build.20201113153529.74484.A9uFGC结果记录到/var/folders/80/ts3rxpm5199g71p1vm4xzydj03b4g3/T/ruby-build.20201113153529.74484.log
最后 10 行日志:未编译 Ruby openssl 扩展。未编译 Ruby readline 扩展。未编译 Ruby zlib 扩展。错误:Ruby 安装由于缺少扩展而中止 使用的配置选项: --
prefix=/Users/username/.rbenv/versions/2.1.2
--with-openssl-dir=/usr/local/opt/openssl@1.0
-- with-readline-dir=/usr/local/opt/readline
CC=clang
LDFLAGS=-L/Users/username/.rbenv/versions/2.1.2/lib
CPPFLAGS=-I/Users/username/.rbenv/versions/ 2.1.2/包含
zlib ×10
compression ×2
.htaccess ×1
c ×1
checksum ×1
crc ×1
crc32 ×1
emscripten ×1
html ×1
matrix ×1
node.js ×1
openssl ×1
php ×1
rbenv ×1
ruby ×1
swift ×1
ubuntu-18.04 ×1
webassembly ×1
xcode9 ×1
zip ×1