我可以在PHP中包含zip文件中的文件吗?例如,我认为我有一个zip文件 – test.zip和test.zip包含一个名为a.PHP的文件.现在,我想做的是下面的事情,
这可能吗?如果可以,任何人都可以提供我的代码片段?如果没有,还有其他任何替代方法吗?
解决方法:
$zip = new ZipArchive('test.zip');
$tmp = tmpfile();
$Metadata = stream_get_Meta_data($tmp);
file_put_content($Metadata['uri'], $zip->getFromName('a.PHP'));
include $Metadata['uri'];
更进一步,您可能对PHAR存档感兴趣,它基本上是一个Zip存档.
编辑:
使用缓存策略:
if (apc_exists('test_zip_a_PHP')) {
$content = apc_fetch('test_zip_a_PHP');
} else {
$zip = new ZipArchive('test.zip');
$content = $zip->getFromName('a.PHP');
apc_add('test_zip_a_PHP', $content);
}
$f = fopen('PHP://memory', 'w+');
fwrite($f, $content);
rewind($f);
// Note to use such include you need `allow_url_include` directive sets to `On`
include('data://text/plain,'.stream_get_contents($f));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。