/rar//: Skillnad mellan sidversioner
Admin (diskussion | bidrag) Ingen redigeringssammanfattning |
Admin (diskussion | bidrag) |
||
Rad 18: | Rad 18: | ||
=== Alternativ === | === Alternativ === | ||
{| class="wikitable" | {| class="wikitable" | ||
Attribut !! Stöds | |||
|- | |- | ||
| Begränsad av allow_url_fopen || Nej | | Begränsad av allow_url_fopen || Nej |
Nuvarande version från 1 september 2024 kl. 05.18
rar:// — RAR
Beskrivning
Omslaget använder den URL-kodade sökvägen till RAR-arkivet (relativ eller absolut), ett valfritt asterisktecken (*), ett valfritt nummertecken (#) och ett valfritt URL-kodat postnamn, som lagrats i arkivet. Att ange ett postnamn kräver nummertecknet; ett ledande snedstreck i postnamnet är valfritt.
Detta omslag kan öppna både filer och kataloger. När man öppnar kataloger, tvingar asterisktecknet att katalogposternas namn returneras okodade. Om det inte anges, kommer de att returneras URL-kodade – anledningen till detta är att låta omslaget användas korrekt med inbyggd funktionalitet som RecursiveDirectoryIterator i närvaro av filnamn som verkar vara URL-kodad data.
Om nummertecknet och postnamnsdelen inte inkluderas, kommer arkivets rot att visas. Detta skiljer sig från vanliga kataloger genom att den resulterande strömmen inte kommer att innehålla information såsom ändringstid, eftersom rotkatalogen inte lagras som en individuell post i arkivet. Användningen av omslaget med RecursiveDirectoryIterator kräver att nummertecknet inkluderas i URL:en när man får åtkomst till roten, så att barnens URL:er kan konstrueras korrekt.
rar:// är tillgängligt sedan PECL rar 3.0.0
Användning
rar://<url-kodade arkivnamn>[*][#[<url-kodat postnamn>]]
Alternativ
Attribut !! StödsBegränsad av allow_url_fopen | Nej |
Begränsad av allow_url_include | Nej |
Tillåter läsning | Ja |
Tillåter skrivning | Nej |
Tillåter tillägg | Nej |
Tillåter samtidig läsning och skrivning | Nej |
Stödjer stat() | Ja |
Stödjer unlink() | Nej |
Stödjer rename() | Nej |
Stödjer mkdir() | Nej |
Stödjer rmdir() | Nej |
Kontextalternativ
Namn | Användning | Standard |
---|---|---|
open_password | Lösenordet som används för att kryptera arkivets rubriker, om sådana finns. WinRAR krypterar alla filer med samma lösenord som rubrikens lösenord när detta är närvarande, så för arkiv med krypterade rubriker kommer file_password att ignoreras. | |
file_password | Lösenordet som används för att kryptera en fil, om sådant finns. Om även rubrikerna är krypterade, kommer detta alternativ att ignoreras till förmån för open_password. Anledningen till att det finns två alternativ är att täcka möjligheten att stödja arkiv med olika rubrik- och fil-lösenord, om sådana arkiv skulle uppstå. Observera att om arkivet inte har sina rubriker krypterade, kommer open_password att ignoreras och detta alternativ måste istället användas. | |
volume_callback | En callback för att bestämma sökvägen till saknade volymer. Se RarArchive::open för mer information. |
Exempel
Exempel #1 Gå igenom ett RAR-arkiv
<?php class MyRecDirIt extends RecursiveDirectoryIterator { function current() { return rawurldecode($this->getSubPathName()) . (is_dir(parent::current())?" [DIR]":""); } } $f = "rar://" . rawurlencode(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'dirs_and_extra_headers.rar#'; $it = new RecursiveTreeIterator(new MyRecDirIt($f)); foreach ($it as $s) { echo $s, "\n"; } ?>
Ovanstående exempel kommer att ge något liknande:
|-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
Exempel #2 Öppna en krypterad fil (rubrikkryptering)
<?php $stream = fopen("rar://" . rawurlencode(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'encrypted_headers.rar' . '#encfile1.txt', "r", false, stream_context_create( array( 'rar' => array( 'open_password' => 'samplepassword' ) ) ) ); var_dump(stream_get_contents($stream)); /* Skapelse- och sista åtkomstdatum är opt-in i WinRAR, därför har de flesta * filer dem inte */ var_dump(fstat($stream)); ?>
Ovanstående exempel kommer att ge något liknande:
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 )
Sidslut
Orginalhemsidan på Engelska :https://www.php.net/manual/en/wrappers.rar.php
PHP
Språkreferens
Stödda Protokoll och Inslagningar
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp som har sponsrat Linux.se med webserver.