Big note for filename with accents.
Some Zip softwares encode accents with CP850.
So use iconv for keeping your accents SAFE !
zip_entry_name
(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
zip_entry_name — ディレクトリエントリの名前を取得する
説明
string zip_entry_name
( resource $zip_entry
)
指定したディレクトリエントリの名前を返します。
返り値
ディレクトリエントリの名前
zip_entry_name
kevyn at opsone dot net
20-Nov-2008 03:21
20-Nov-2008 03:21
leandro_dealmeida at hotmail dot com
27-Sep-2002 04:21
27-Sep-2002 04:21
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
