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
)