|
rar://rar:// — RAR ОписаниеЭта обертка принимает URL-кодированный путь к RAR-архиву (относительный или абсолютный), необязательный символ звездочки (*), необязательный символ решетки (#) и необязательное URL-кодированное имя такое, как хранится в архиве. Для указания имени содержимого требуется символ решетки, начальный обратный слеш в названии содержимого необязателен. Эта обертка может открывать файлы и директории. Когда открываются директории, знак звездочки требует, чтобы имена объектов директории были закодированы unencode. Если такой знак не указан, они будут возвращены в URL-кодировке. Смысл этого в том, чтобы позволить обертке корректно использовать встроенную функциональность, такую как RecursiveDirectoryIterator когда присутствуют имена файлов, которые кажутся как url-закодированные данные. Если символ решетки и часть имени записи не включена, будет отображен корень архива. Это отличается от обычных директорий тем, что результирующий поток не будет содержать такую информацию, как время модификации, так как корневая директория не сохраняется как отдельная запись в архиве. Использование обертки с RecursiveDirectoryIterator требует, чтобы символ решетки был включен в URL, когда происходит доступ к корню, так чтобы URL потомков мог быть сконструирован правильно.
rar:// Доступно начиная с PECL rar 3.0.0 Опции
ПримерыПример #1 Обход RAR-архива
<?php Результатом выполнения данного примера будет что-то подобное: |-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 Открытие зашифрованного файла (шифрование заголовка)
<?php Результатом выполнения данного примера будет что-то подобное: 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 ) |
|