文檔地址:https://www.php.net/manual/zh/class.rararchive.php
### 代碼
```
final class RarArchive implements Traversable {
/* 方法 */
public close(): bool // 關閉RAR存檔并釋放所有資源
public getComment(): string // 從RAR存檔中獲取注釋文本
public getEntries(): array|false // 從RAR歸檔中獲取條目的完整列表
public getEntry(string $entryname): RarEntry|false //從RAR歸檔中獲取條目對象
public isBroken(): bool // 測試存檔是否已損壞(不完整)
public isSolid(): bool //檢查RAR歸檔是否可靠
public static open(string $filename, string $password = NULL, callable $volume_callback = NULL): RarArchive|false // 打開RAR存檔
public setAllowBroken(bool $allow_broken): bool //是否允許打開損壞的存檔
public __toString(): string // 獲取文本表示
}
```
### 說明
RARArchive類目前需要安裝才能使用
下載并安裝PHP RAR擴展php_rar才可以用。
PHP RarArchive類只支持rar壓縮文件的讀取和解壓,不支持添加文件。
也就是說不能用PHP RarArchive來實現文件壓縮。想要用PHP生成壓縮文件來打包目錄,可以使用ZipArchive類,支持壓縮和解壓文件,ZipArchive是PHP內置的,不需要安裝,還可以結合bzip2和ZipArchive實現更高壓縮級別的壓縮。
**注意:檢查是否安裝rar擴展,否則是沒有效果的**
**
#### 測試 使用foreach遍歷
~~~
<?php
$rar_arch = RarArchive::open('test.rar');
if ($rar_arch === false) die("文件不存在或者路徑不正確");
foreach ($rar_arch as $key=>$vel)
{
echo $key."=====".$vel."<br>";
}
$rar_arch->close();
?>
~~~
// 結果

- 空白目錄
- iterable接口
- 接口Traversable繼承Iterator接口
- 類 RarArchive 繼承Traversable接口
- 類SimpleXMLElement繼承Traversable接口
- 類SimpleXMLIterator 繼承SimpleXMLElement類
- 類IntlRuleBasedBreakIterator實現Traversable接口
- 類IntlCodePointBreakIterator實現Traversable接口
- 類DocResult 實現BaseResult和Traversable
- 類Result 實現\BaseResult和Traversable
- 類RowResult實現\BaseResult 和Traversable
- 類SqlStatementResult 實現BaseResult 和Traversable
- 接口IteratorAggregate 繼承Traversable
- 類DOMNodeList 實現IteratorAggregate, Countable
- 類DOMNamedNodeMap 實現IteratorAggregate, Countable