(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)
zip_entry_name — ディレクトリエントリの名前を取得する
この関数は PHP 8.0.0 で 非推奨になります。この関数に頼らないことを強く推奨します。
ディレクトリエントリの名前を返します。
失敗した場合に false を返します
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.
LeandroBig note for filename with accents.
Some Zip softwares encode accents with CP850.
So use iconv for keeping your accents SAFE !