• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • RarArchive::getEntries()

    (PECL rar >= 2.0.0)

    Get full list of entries from the RAR archive

    说明

    面向对象风格(method):

    publicRarArchive::getEntries(void): array

    过程化风格:

    rar_list(RarArchive$rarfile): array

    Get entries list(files and directories)from the RAR archive.

    Note:

    If the archive has entries with the same name, this method, together with RarArchiveforeachiteration and array-like access with numeric indexes, are the only ones to access all the entries(i.e.,RarArchive::getEntry() and therar://wrapper are insufficient).

    参数

    $rarfile

    A RarArchive object, opened with rar_open().

    返回值

    rar_list() returns array of RarEntry objects 或者在失败时返回FALSE.

    更新日志

    版本说明
    3.0.0 Support for RAR archives with repeated entry names is no longer defective.

    范例

    Example #1 面向对象风格

    <?php
    $rar_arch = RarArchive::open('solid.rar');
    if ($rar_arch === FALSE)
        die("Could not open RAR archive.");
    $rar_entries = $rar_arch->getEntries();
    if ($rar_entries === FALSE)
        die("Could not retrieve entries.");
    echo "Found " . count($rar_entries) . " entries.\n";
    foreach ($rar_entries as $e) {
        echo $e;
        echo "\n";
    }
    $rar_arch->close();
    ?>
    

    以上例程的输出类似于:

    Found 2 entries.
    RarEntry for file "tese.txt" (23b93a7a)
    RarEntry for file "unrardll.txt" (2ed64b6e)
    

    Example #2 过程化风格

    <?php
    $rar_arch = rar_open('solid.rar');
    if ($rar_arch === FALSE)
        die("Could not open RAR archive.");
    $rar_entries = rar_list($rar_arch);
    if ($rar_entries === FALSE)
        die("Could retrieve entries.");
    echo "Found " . count($rar_entries) . " entries.\n";
    foreach ($rar_entries as $e) {
        echo $e;
        echo "\n";
    }
    rar_close($rar_arch);
    ?>
    

    参见

    • RarArchive::getEntry() Get entry object from the RAR archive
    • rar://wrapper
    at the examples line 7 should be:
      die("Could NOT retrieve entries.");
    Can be usefult for many, probably:
    <?php
    $path = 'path/to/archive';
    $archive = RarArchive::open($path);
    $list    = $archive ->getEntries();
    foreach ($list as $entity) {
      //print just title of file from archive(use getters to access other fields, etc)
      echo $value->getName();
    }
    ?>