zipfile.zip
文件的目录结构将是
文件夹A - >文件夹B - >文件夹C - > image1.png,image2.png,image3.png
以下是我尝试过的代码。但它没有回应任何东西。
$zip = zip_open('zipfile.zip');
while($zip_entry = zip_read($zip)){
$filename = zip_entry_name($zip_entry);
echo $filename."<br/>";
}
我想要的所有O / P
FolderArray =&gt; A,B,C
FileArray =&gt; image1.png,image2.png,image3.png。
是否有可能将O / P作为两个阵列?如何区分文件和文件?使用PHP zip命令的文件夹?
如何使用php阅读此目录结构?
答案 0 :(得分:2)
我不太确定你想要什么,但这是一个猜测。你可以测试找到的条目是文件夹,如果它的最后一个字符是/
吗?
新的folder.zip内容
New folder/New folder/New folder/New Text Document (2).txt
New folder/New folder/New folder/New Text Document.txt
New folder/New folder/New Text Document.txt
代码
$zip = zip_open('New folder.zip');
$dirs = $files = array();
if ($zip) {
while ($zip_entry = zip_read($zip)) {
$zen = zip_entry_name($zip_entry);
$is_dir = substr($zen, -1) == DIRECTORY_SEPARATOR;
$zen_splitted = explode(DIRECTORY_SEPARATOR, $zen);
if ($is_dir) {
$dirs[] = $zen_splitted[count($zen_splitted)-2];
} else {
$files[] = $zen_splitted[count($zen_splitted)-1];
}
}
zip_close($zip);
}
print_r($dirs);
print_r($files);
输出
Array
(
[0] => New folder
[1] => New folder
[2] => New folder
[3] => New folder (2)
)
Array
(
[0] => New Text Document (2).txt
[1] => New Text Document.txt
[2] => New Text Document.txt
)
答案 1 :(得分:0)
$zip = zip_open('zipfile.zip');
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "Name: " . zip_entry_name($zip_entry) . "\n";
echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "\n";
echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "\n";
echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";
if (zip_entry_open($zip, $zip_entry, "r")) {
echo "File Contents:\n";
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
echo "$buf\n";
zip_entry_close($zip_entry);
}
echo "\n";
}
zip_close($zip);
}
摘自http://www.php.net/manual/en/zip.examples.php
但这不支持找出它是文件夹还是文件的方法。