(PECL rar >= 2.0.0)
RarArchive::getEntry -- rar_entry_get β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΠ· RAR Π°ΡΡ ΠΈΠ²Π°
ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΈΠ»Ρ (ΠΌΠ΅ΡΠΎΠ΄):
ΠΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ) ΠΈΠ· RAR Π°ΡΡ ΠΈΠ²Π°
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ RarArchive::getEntries(). Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ RAR Π°ΡΡ ΠΈΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²Π΅ΡΠ½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ· Π½ΠΈΡ .
rarfileentrynameΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ RarEntry::getName().
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ RarEntry ΠΈΠ»ΠΈ false, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΈΠ»Ρ
<?php
$rar_arch = RarArchive::open('solid.rar');
if ($rar_arch === FALSE)
die("ΠΠ΅ ΡΠΌΠΎΠ³ ΠΎΡΠΊΡΡΡΡ RAR Π°ΡΡ
ΠΈΠ².");
$rar_entry = $rar_arch->getEntry('tese.txt');
if ($rar_entry === FALSE)
die("ΠΠ΅ ΡΠΌΠΎΠ³ Π΄ΠΎΡΡΠ°ΡΡ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ");
echo get_class($rar_entry)."\n";
echo $rar_entry;
$rar_arch->close();
?>ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π°:
RarEntry RarEntry for file "tese.txt" (23b93a7a)
ΠΡΠΈΠΌΠ΅Ρ #2 ΠΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ
<?php
$rar_arch = rar_open('solid.rar');
if ($rar_arch === FALSE)
die("ΠΠ΅ ΡΠΌΠΎΠ³ ΠΎΡΠΊΡΡΡΡ RAR Π°ΡΡ
ΠΈΠ².");
$rar_entry = rar_entry_get($rar_arch, 'tese.txt');
if ($rar_entry === FALSE)
die("ΠΠ΅ ΡΠΌΠΎΠ³ Π΄ΠΎΡΡΠ°ΡΡ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ");
echo get_class($rar_entry)."\n";
echo $rar_entry;
rar_close($rar_arch);
?>rar:// ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ (wrapper)