Открывать ли повреждённые архивы

# RarArchive::setAllowBroken

(PECL rar >= 3.0.0)

RarArchive::setAllowBroken — Открывать ли повреждённые архивы

### Описание

Объектно-ориентированный стиль (метод):

public function RarArchive::setAllowBroken(bool `$allow_broken`): bool

Процедурный стиль:

function rar_allow_broken_set(RarArchive `$rarfile`, bool `$allow_broken`): bool

Метод определяет, можно ли пытаться читать повреждённый архив, или все операции с ним должны заканчиваться ошибкой. Повреждённые архивы - это такие архивы, которые открываются без ошибок, но при попытке прочитать записи возникают ошибки.

### Список параметров

`rarfile`
  Объект RarArchive, открытый с помощью rar_open().
`allow_broken`
  Разрешать ли работу с повреждёнными архивами (`true`) или нет (`false`).

### Возвращаемые значения

Возвращает `true` в случае успешного выполнения или `false`, если возникла ошибка. Ошибка может возникнуть только если файл уже закрыт.

### Примеры

Пример #1 Объектно-ориентированный стиль

    <?php
    function retnull() { return null; }
    $file = dirname(__FILE__) . "/multi_broken.part1.rar";
    /* третий аргумент подавляет сообщение "volume not found" */
    $a = RarArchive::open($file, null, 'retnull');
    $a->setAllowBroken(true);
    foreach ($a->getEntries() as $e) {
        echo "$e\n";
    }
    var_dump(count($a));
    ?>

Вывод приведённого примера будет похож на:

    RarEntry for file "file1.txt" (52b28202)
    int(1)

Пример #2 Процедурный стиль

    <?php
    function retnull() { return null; }
    $file = dirname(__FILE__) . "/multi_broken.part1.rar";
    /* третий аргумент подавляет сообщение "volume not found" */
    $a = rar_open($file, null, 'retnull');
    rar_allow_broken_set($a, true);
    foreach (rar_list($a) as $e) {
        echo "$e\n";
    }
    var_dump(count($a));
    ?>

### Смотрите также

- RarArchive::isBroken() - Проверяет, не сломан ли архив (не завершён)

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open