PHP Conference Japan 2024

RarArchive::getEntries

rar_list

(PECL rar >= 2.0.0)

RarArchive::getEntries -- rar_list获取 RAR 档案中条目的完整列表

描述

面向对象风格(方法)

public RarArchive::getEntries(): 数组|false

过程式风格

rar_list(RarArchive $rarfile): 数组|false

从 RAR 档案中获取条目列表(文件和目录)。

注意:

如果档案中存在同名的条目,则此方法与 RarArchive foreach 迭代以及使用数字索引的数组式访问是访问所有条目的唯一方法(即,RarArchive::getEntry() rar:// 封装器 不足)。

参数

rarfile

一个 RarArchive 对象,使用 rar_open() 打开。

返回值

rar_list() 返回 RarEntry 对象的数组,或在失败时返回 false

变更日志

版本 描述
PECL rar 3.0.0 对具有重复条目名称的 RAR 档案的支持不再有缺陷。

示例

示例 #1 面向对象风格

<?php
$rar_arch
= RarArchive::open('solid.rar');
if (
$rar_arch === FALSE)
die(
"无法打开 RAR 档案。");

$rar_entries = $rar_arch->getEntries();
if (
$rar_entries === FALSE)
die(
"无法检索条目。");

echo
"找到 " . count($rar_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(
"无法打开 RAR 档案。");

$rar_entries = rar_list($rar_arch);
if (
$rar_entries === FALSE)
die(
"无法检索条目。");

echo
"找到 " . count($rar_entries) . " 个条目。\n";

foreach (
$rar_entries as $e) {
echo
$e;
echo
"\n";
}
rar_close($rar_arch);
?>

参见

添加注释

用户贡献的注释 2 条注释

匿名
10 年前
在示例第 7 行应为
die("Could NOT retrieve entries.");
grap at hot dot ee
11 年前
可能对许多人有用
<?php
$path
= 'path/to/archive';

$archive = RarArchive::open($path);
$list = $archive ->getEntries();
foreach (
$list as $entity) {
//仅打印档案中的文件标题(使用 getter 访问其他字段等)
echo $value->getName();
}
?>
To Top