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 — Obtiene el nombre de una entrada de directorio
Descripción
string zip_entry_name
( resource $zip_entry
)
Devuelve el nombre de la entrada de directorio indicada.
Lista de parámetros
- zip_entry
-
Este parámetro debe ser una entrada de directorio válida obtenida mediante la función zip_read().
Valores retornados
Devuelve el nombre de la entrada de directorio.
zip_entry_name
leandro_dealmeida at hotmail dot com
27-Sep-2002 06:21
27-Sep-2002 06:21
