CXXI. Rar Functions

简介

Rar is a powerful and effective archiver created by Eugene Roshal. This extension gives you possibility to read Rar archives but doesn't support writing Rar archives, because this is not supported by UnRar library and is directly prohibited by it's license.

More information about Rar and UnRar can be found at http://www.rarlabs.com/.

需求

要编译本扩展模块不需要外部库文件。

运行时配置

本扩展模块在 php.ini 中未定义任何配置选项。

安装

Rar is currently available through PECL http://pecl.php.net/package/rar.

Also you can use the pear installer to install the Rar extension, using the following command: pear -v install rar.

You can always download the tar.gz package and install Rar by hand:

例子 1. Rar installation

gunzip rar-xxx.tgz
tar -xvf rar-xxx.tar
cd rar-xxx
phpize
./configure && make && make install

Windows users can download the extension dll php_rar.dll here: http://snaps.php.net/win32/PECL_STABLE/.

资源类型

There is one resource used in Rar extension: a file descriptor returned by rar_open().

预定义常量

RAR_HOST_MSDOS (integer)

RAR_HOST_OS2 (integer)

RAR_HOST_WIN32 (integer)

RAR_HOST_UNIX (integer)

RAR_HOST_BEOS (integer)

范例

例子 2. Rar extension overview example

<?php

$rar_file
= rar_open('example.rar') or die("Can't open Rar archive");

$entries = rar_list($rar_file);

foreach (
$entries as $entry) {
    echo
'Filename: ' . $entry->getName() . "\n";
    echo
'Packed size: ' . $entry->getPackedSize() . "\n";
    echo
'Unpacked size: ' . $entry->getUnpackedSize() . "\n";

    
$entry->extract('/dir/extract/to/');
}

rar_close($rar_file);

?>

This example opens a Rar file archive and extracts each entry to the specified directory.

目录
rar_close -- Close Rar archive and free all resources
rar_entry_get -- Get entry object from the Rar archive
Rar::extract -- Extract entry from the archive
Rar::getAttr -- Get attributes of the entry
Rar::getCrc -- Get CRC of the entry
Rar::getFileTime -- Get entry last modification time
Rar::getHostOs -- Get entry host OS
Rar::getMethod -- Get pack method of the entry
Rar::getName -- Get name of the entry
Rar::getPackedSize -- Get packed size of the entry
Rar::getUnpackedSize -- Get unpacked size of the entry
Rar::getVersion -- Get version of the archiver used to add the entry
rar_list -- Get entries list from the Rar archive
rar_open -- Open Rar archive