文字

RarArchive::getEntries

rar_list

(PECL rar >= 2.0.0)

RarArchive::getEntries -- rar_listGet full list of entries from the RAR archive

说明

面向对象风格 (method):

public array RarArchive::getEntries ( void )

过程化风格:

array rar_list ( RarArchive $rarfile )

Get entries list (files and directories) from the RAR archive.

Note:

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 the rar:// wrapper are insufficient).

参数

rarfile

A RarArchive object, opened with rar_open() .

返回值

rar_list() returns array of RarEntry objects 或者在失败时返回 FALSE .

更新日志

版本 说明
3.0.0 Support for RAR archives with repeated entry names is no longer defective.

范例

Example #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 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)

Example #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 );
?>

参见

  • RarArchive::getEntry() - Get entry object from the RAR archive
  • rar:// wrapper

用户评论:

[#1] Anonymous [2014-11-19 14:49:28]

at the examples line 7 should be:
    die("Could NOT retrieve entries.");

[#2] grap at hot dot ee [2013-01-24 14:01:44]

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

上一篇: 下一篇: