at the examples line 7 should be:
die("Could NOT retrieve entries.");
PHP - Manual: RarArchive::getEntries
2024-12-21
(PECL rar >= 2.0.0)
RarArchive::getEntries -- rar_list — Get full list of entries from the RAR archive
面向对象风格 (method):
过程化风格:
Get entries list (files and directories) from the RAR archive.
注意:
If the archive has entries with the same name, this method, together with RarArchive
foreach
iteration 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).
rar_list() returns array of RarEntry objects
或者在失败时返回 false
.
版本 | 说明 |
---|---|
PECL rar 3.0.0 | Support for RAR archives with repeated entry names is no longer defective. |
示例 #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)
示例 #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);
?>
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();
}
?>
官方地址:https://www.php.net/manual/en/rararchive.getentries.php