Big note for filename with accents.
Some Zip softwares encode accents with CP850.
So use iconv for keeping your accents SAFE !
(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)
zip_entry_name — 检索目录项的名称
$zip_entry
) : string返回指定目录项的名称。
目录项的名称。
Big note for filename with accents.
Some Zip softwares encode accents with CP850.
So use iconv for keeping your accents SAFE !
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