rar://

rar:// — RAR

Опис

Ця обгортка приймає URL-кодований шлях до RAR-архіву (відносний або абсолютний), необов'язковий символ зірочки (*), необов'язковий символ ґрат (#) та необов'язкове URL-кодоване ім'я таке, як зберігається в архіві. Для вказівки імені вмісту потрібен символ решітки, початковий зворотний сліш у назві вмісту необов'язковий.

Ця обгортка може відкривати файли та каталоги. Коли відкриваються директорії, знак зірочки вимагає, щоб імена об'єктів директорії були закодовані unencode. Якщо такий знак не вказано, їх буде повернено в URL-кодуванні. Сенс цього в тому, щоб дозволити обгортці коректно використовувати вбудовану функціональність, таку як RecursiveDirectoryIterator коли є імена файлів, які здаються як url-закодовані дані.

Якщо символ решітки та частина імені запису не увімкнена, буде відображено корінь архіву. Це відрізняється від звичайних директорій тим, що результуючий потік не міститиме таку інформацію, як час модифікації, оскільки коренева директорія не зберігається як окремий запис в архіві. Використання обгортки з RecursiveDirectoryIterator вимагає, щоб символ решітки був включений до URL, коли відбувається доступ до кореня, так щоб URL нащадків міг бути сконструйований правильно.

Зауваження Ця обгортка не включена за замовчуванням
Для того щоб використовувати обгортку rar://, необхідно встановити модуль » rar, доступний у репозиторії » PECL

rar:// Доступно з PECL rar 3.0.0

Використання

  • rar://[*][#[]]

Опції

Основна інформація

АтрибутПоддержка
Обмеження по allow_url_fopenНі
Обмеження по allow_url_includeНі
ЧитанняТак
ЗаписНі
ДодаванняНі
Одночасне читання та записНі
Поддержкаstat()Так
Поддержкаunlink()Ні
Поддержкаrename()Ні
Поддержкаmkdir()Ні
Поддержкаrmdir()Ні

Опції контексту

НазваниеИспользованиеПо умолчанию
open_passwordПароль використовується для шифрування заголовків архіву, якщо вони є. WinRAR шифруватиме всі файли з таким самим паролем, як і пароль заголовків, коли останній присутній. Тому для архівів із зашифрованими заголовками опція file_password буде проігноровано.
file_passwordПароль, який використовується для шифрування файлу, якщо такий є. Якщо заголовки також зашифровані, ця опція буде ігнорована на користь open_password. . Причина цього в тому, що немає сенсу у використанні одночасно двох різних паролів для шифрування окремо заголовків та файлів. Немає таких архівів, де це знадобилося б. Зауважимо, що якщо у архіву відсутні зашифровані заголовки, то опція open_password буде ігнорована і ця опція має бути використана замість неї.
volume_callbackЗворотний виклик визначення шляху відсутніх томів архіву. Дивіться RarArchive::open() для детальнішої інформації.

Приклади

Приклад #1 Обхід RAR-архіву

Loading...

Висновок наведеного прикладу буде схожим на:

|-allow_everyone_ni [DIR]
|-file1.txt
|-file2_אּ.txt
|-with_streams.txt
\-אּ [DIR]
  |-אּ\%2Fempty%2E [DIR]
  | \-אּ\%2Fempty%2E\file7.txt
  |-אּ\empty [DIR]
  |-אּ\file3.txt
  |-אּ\file4_אּ.txt
  \-אּ\אּ_2 [DIR]
    |-אּ\אּ_2\file5.txt
    \-אּ\אּ_2\file6_אּ.txt

Приклад #2 Відкриття зашифрованого файлу (шифрування заголовка)

Loading...

Висновок наведеного прикладу буде схожим на:

string(26) "Encrypted file 1 contents."
Array
(
    [0] => 0
    [1] => 0
    [2] => 33206
    [3] => 1
    [4] => 0
    [5] => 0
    [6] => 0
    [7] => 26
    [8] => 0
    [9] => 1259550052
    [10] => 0
    [11] => -1
    [12] => -1
    [dev] => 0
    [ino] => 0
    [mode] => 33206
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 26
    [atime] => 0
    [mtime] => 1259550052
    [ctime] => 0
    [blksize] => -1
    [blocks] => -1
)