• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • zip_read()

    (PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

    读取ZIP存档文件中下一项

    说明

    zip_read(resource $zip): resource

    读取ZIP存档文件中下一项。

    参数

    $zip

    一个ZIP压缩文件,该ZIP归档文件之前应由函数zip_open()打开。

    返回值

    成功的时候返回该当前实体资源供zip_entry_...系列函数后续使用;如果没有更多的读取项,则会返回FALSE如果遇到错误则会返回相应的错误码。

    参见

    *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.

    上篇:zip_open()