# Rar Functions

## Introduction

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/.

## Requirements

No external libraries are needed to build this extension.

## Runtime Configuration

This extension has no configuration directives defined in php.ini.

## Installation

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

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

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

Example#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/.

## Resource Types

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

## Predefined Constants

`RAR_HOST_MSDOS` (integer)
`RAR_HOST_OS2` (integer)
`RAR_HOST_WIN32` (integer)
`RAR_HOST_UNIX` (integer)
`RAR_HOST_BEOS` (integer)

## Examples

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

## Table of Contents

- 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