RarArchive::getEntries

rar_list

(PECL rar >= 2.0.0)

RarArchive::getEntries -- rar_list β€” Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список элСмСнтов ΠΈΠ· RAR Π°Ρ€Ρ…ΠΈΠ²Π°

ОписаниС

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ (ΠΌΠ΅Ρ‚ΠΎΠ΄):

public function RarArchive::getEntries(): array|false

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ:

function rar_list(RarArchive $rarfile): array|false

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнты (Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ) ΠΈΠ· RAR Π°Ρ€Ρ…ΠΈΠ²Π°.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Если Π°Ρ€Ρ…ΠΈΠ² ΠΈΠΌΠ΅Π΅Ρ‚ элСмСнты с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‚ΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ совмСстно с Ρ†ΠΈΠΊΠ»ΠΎΠΌ foreach ΠΏΠΎ RarArchive ΠΈ доступом ΠΊ Π½Π΅ΠΌΡƒ ΠΊΠ°ΠΊ ΠΊ массиву с числовыми индСксами ΡΠ²Π»ΡΡŽΡ‚ΡΡ СдинствСнными способами ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ этим элСмСнтам (Ρ‚.Π΅. RarArchive::getEntry() ΠΈ rar:// ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ (wrapper) Π½Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚).

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

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();
?>

Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆ Π½Π°:

ΠΠ°ΡˆΡ‘Π» 2 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
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);
?>

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 2 notes

up
2
Anonymous ΒΆ
11 years ago
at the examples line 7 should be:
    die("Could NOT retrieve entries.");
up
1
grap at hot dot ee ΒΆ
13 years ago
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();
}
?>