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.
Leandrozip_entry_name
(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)
zip_entry_name — Retrieve the name of a directory entry
Warning
This function has been DEPRECATED as of PHP 8.0.0. Relying on this function is highly discouraged.
Description
Returns the name of the specified directory entry.
Return Values
The name of the directory entry, or false on failure.
Changelog
| Version | Description |
|---|---|
| 8.0.0 | This function is deprecated in favor of the Object API, see ZipArchive::statIndex(). |
+add a note
User Contributed Notes 2 notes
leandro_dealmeida at hotmail dot com ¶
23 years ago
kevyn at opsone dot net ¶
17 years ago
Big note for filename with accents.
Some Zip softwares encode accents with CP850.
So use iconv for keeping your accents SAFE !