*Here is a simple example*
<?php
$zp = zip_open('file.zip');
while ($file = zip_read($zp)) {
echo zip_entry_name($file).PHP_EOL;
}
?>
The output will be something similar to:
myfile.txt
mydir/
(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)
zip_read — Bir ZIP dosya arşivindeki bir sonraki girdiyi okur
Bu işlevin kullanımı PHP 8.0.0 itibariyle ÖNERİLMEMEKTEDİR. Bu işleve kesinlikle güvenilmemelidir.
Bir ZIP dosya arşivindeki bir sonraki girdiyi okur.
Normalde, daha sonra zip_entry_...
işlevleri ile
kullanmak üzere bir dizin girdisi özkaynağı döndürür. Okunacak girdi yoksa
false
, bir hata oluşmuşsa hatanın numarasını döndürür.
Sürüm: | Açıklama |
---|---|
8.0.0 | Nesne arayüzünü desteklemek için bu işlevin kullanımı artık önerilmiyor. Bkz: ZipArchive::statIndex(). |
*Here is a simple example*
<?php
$zp = zip_open('file.zip');
while ($file = zip_read($zp)) {
echo zip_entry_name($file).PHP_EOL;
}
?>
The output will be something similar to:
myfile.txt
mydir/
Note: Only the first 65535 entries will be returned, even if your archive contains more entries. See https://bugs.php.net/bug.php?id=59118 for details.
If you get an error like this:
Warning: zip_read() expects parameter 1 to be resource, integer given in xxxxxx on line x
It's because zip_open() failed to open the file and returned an error code instead of a resource. It took me a while to figure out why it failed to open the file, until I tried to use the FULL path to the file.
<?php
// Even if the file exists, zip_open() will return an error code.
$file = 'file.zip';
$zip = zip_open($file);
// The workaround:
$file = getcwd() . '/file.zip';
// Or:
$file = 'C:\\path\\to\\file.zip';
?>
This worked for me on Windows at least. I'm not sure about other platforms.