at the examples line 7 should be:
die("Could NOT retrieve entries.");(PECL rar >= 2.0.0)
RarArchive::getEntries -- rar_list β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· RAR Π°ΡΡ ΠΈΠ²Π°
ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΈΠ»Ρ (ΠΌΠ΅ΡΠΎΠ΄):
ΠΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ (ΡΠ°ΠΉΠ»Ρ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ) ΠΈΠ· RAR Π°ΡΡ ΠΈΠ²Π°.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ Π°ΡΡ ΠΈΠ² ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΡΠΈΠΊΠ»ΠΎΠΌ
foreachΠΏΠΎ RarArchive ΠΈ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ Π½Π΅ΠΌΡ ΠΊΠ°ΠΊ ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ (Ρ.Π΅. RarArchive::getEntry() ΠΈrar://ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ (wrapper) Π½Π΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ).
rarfile
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);
?>rar:// ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ(wrapper)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();
}
?>