If you want to get the real name of the file without the directory name, you can just use the function basename() as the follow:
<?
$zip_dir = "./import/";
$zip = zip_open($zip_dir."import.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
$file = basename(zip_entry_name($zip_entry));
$fp = fopen($zip_dir.basename($file), "w+");
if (zip_entry_open($zip, $zip_entry, "r")) {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
zip_entry_close($zip_entry);
}
fwrite($fp, $buf);
fclose($fp);
echo "The file ".$file." was extracted to dir ".$zip_dir."\n<br>";
}
zip_close($zip);
}
?>
Thefore you can extract files without concern with the directory that is set inside the zip source.
Remember to give write permission (w) on that directory.
Hello from Brazil.
Leandro
zip_entry_name
(PHP 4 >= 4.0.7, PHP 5 >= 5.2.0, PECL zip:1.0-1.9.0)
zip_entry_name — ディレクトリエントリの名前を取得する
説明
string zip_entry_name
( resource $zip_entry
)
指定したディレクトリエントリの名前を返します。
返り値
ディレクトリエントリの名前
zip_entry_name
leandro_dealmeida at hotmail dot com
28-Sep-2002 01:21
28-Sep-2002 01:21