RarArchive::getEntries()
(PECL rar >= 2.0.0)
Get full list of entries from the RAR archive
说明
面向对象风格(method):
public RarArchive::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(); } ?>