ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
zip://, bzip2://, zlib://协议在双off的情况下也可以正常使用; zip://, bzip2://, zlib:// 均属于**压缩流**,可以访问压缩文件中的子文件,更重要的是不需要指定后缀名。 * allow\_url\_fopen :off/on * allow\_url\_include:off/on **使用方法** * compress.zlib://file.gz * compress.bzip2://file.bz2 * zip://archive.zip#dir/file.txt zip:// \[压缩文件绝对路径\]#\[压缩文件内的子文件名\] **封装协议摘要** | 属性 | 支持 | | --- | --- | | 受限于[allow\_url\_fopen](https://www.php.net/manual/zh/filesystem.configuration.php#ini.allow-url-fopen) | No | | 允许读取 | Yes | | 允许写入 | Yes(除了*zip://*) | | 允许附加 | Yes(除了*zip://*) | | 允许同时读写 | No | | 支持[stat()](https://www.php.net/manual/zh/function.stat.php) | No,请使用普通的*file://*封装器统计压缩文件。 | | 支持[unlink()](https://www.php.net/manual/zh/function.unlink.php) | No,请使用*file://*封装器删除压缩文件。 | | 支持[rename()](https://www.php.net/manual/zh/function.rename.php) | No | | 支持[mkdir()](https://www.php.net/manual/zh/function.mkdir.php) | No | | 支持[rmdir()](https://www.php.net/manual/zh/function.rmdir.php) | No | **测试** 先将要执行的PHP代码写好文件名为phpcode.txt,将phpcode.txt进行zip压缩,压缩文件名为file.zip,如果可以上传zip文件便直接上传,若不能便将file.zip重命名为file.jpg后在上传,其他几种压缩格式也可以这样操作。 由于#在get请求中会将后面的参数忽略所以使用get请求时候应进行url编码为%23,且此处经过测试相对路径是不可行,所以只能用绝对路径。 ``` http://127.0.0.1/code/1.php?file=zip://E:\phpStudy\WWW\code/1.zip%231.txt ``` ![](https://img.kancloud.cn/e8/09/e809eac02db9e20a6d8edc50995d459a_761x214.png) ``` file_get_contents("compress.zlib://php://input"); $fp=fopen('compress.zip://./foo.zip#bar.txt','r'); ``` 压缩与解压 ``` $compression_file='compress.zlib://' . 'file.txt.gz'; copy('file.txt',$compression_file ); copy($compression_file, 'file.txt'); ```