【发布时间】:2017-01-03 10:40:33
【问题描述】:
我正在尝试在 PHP 中解压缩一个文件夹并对这些文件进行一些处理。我让它正常工作,但我需要对压缩文件夹根目录内的压缩文件夹进行这项工作。
所以 zipped1 可能包含 image1 和 zipped2。我还需要提取 zipped2。我试图通过递归来做到这一点,如下所示。显然这不是完整的代码,而是相关的部分。
$tempFile = $_FILES['Filedata']['tmp_name'];
function handle_zip($ZipHandler)
{
while($zip_entry = zip_read($ZipHandler))
{
$ext = explode(".",zip_entry_name($zip_entry))[1];
if($ext=="zip")
handle_zip(zip_open($zip_entry));
}
}
$ZipHandler = zip_open($tempFile);
handle_zip($ZipHandler);
zip_close($ZipHandler);
所以问题是递归调用函数需要将文件作为参数发送,但 zip_open 似乎在服务器上的临时文件夹中打开上传的文件 - 而这个递归参数不在该临时文件夹中。
请问我该怎么办?
【问题讨论】:
标签: php recursion unzip extraction compression