gpt4 book ai didi

PHP zip_open() 和 php ://temp, 似乎无法打开

转载 作者:可可西里 更新时间:2023-11-01 13:28:49 35 4
gpt4 key购买 nike

不确定这是否可能,但现在它已成为一场学术斗争。

使用 __halt_compiler() 技巧在 PHP 文件中嵌入二进制数据,我成功创建了一个自打开脚本,它将 fseek()__COMPILER_HALT_OFFSET__(不太难看,因为手册中记录了这个精确示例)

无论如何,在我调用 __halt_compiler() 一个包含单个文件的文件夹,上面写着“hello world”)

我尝试做的是将数据直接复制到 php://temp 流,并成功完成(如果我 rewind()passthru() 临时流句柄,它转储数据)

$php = fopen(__FILE__, 'rb');
$tmp = fopen('php://temp', 'r+b');
fseek($php, __COMPILER_HALT_OFFSET__);
stream_copy_to_stream($php, $tmp);

我的问题是尝试使用 zip_open() 打开 php://temp1

$zip = zip_open('php://temp');

1From what I can see (despite other such possibilities as lack of stream support with zip_open()) the problem here is the inherent non-permanence of data in php://memory and php://temp streams between handles. If this can be worked around, perhaps it is in fact possible.

它不断返回错误代码 11,我发现没有2 文档(似乎,像大多数其他可能的错误代码)

var_dump($zip); // int(11)

2 As @cweiske pointed out, error code 11 = ZipArchive::ER_OPEN, Can't open file

这是我尝试使用 php://temp 流的结果,还是其他一些可能的问题?我也知道存在一种 OOP 方法(ZipArchive),但我想我应该从基础开始。

有什么想法吗?

最佳答案

11 是常量ZIPARCHIVE::ER_OPEN,手册用

Can't open file

请注意,手册没有声明可以使用流包装器。


请考虑使用 PHP 的 phar 扩展 - 它可以满足您的需求,并且经过充分测试。

关于PHP zip_open() 和 php ://temp, 似乎无法打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6910363/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com