/rar//: Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med 'rar:// rar:// — RAR Description ¶ The wrapper takes the url encoded path to the RAR archive (relative or absolute), an optional asterisk (*), an optional number sign (#) and an optional url encoded entry name, as stored in the archive. Specifying an entry name requires the number sign; a leading forward slash in the entry name is optional. This wrapper can open both files and directories. When opening directories, the asterisk sign forces the directory entries names...') |
Admin (diskussion | bidrag) |
||
(En mellanliggande sidversion av samma användare visas inte) | |||
Rad 1: | Rad 1: | ||
== 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:// | {{Note|Detta omslag är inte aktiverat som standard. För att använda rar:// omslaget måste [[PECL]]-tillägget RAR vara installerat.}} | ||
'''rar://''' är tillgängligt sedan PECL rar 3.0.0 | |||
rar:// | |||
=== Användning === | |||
rar://<url-kodade arkivnamn>[*][#[<url-kodat postnamn>]] | |||
=== Alternativ === | |||
{| class="wikitable" | |||
Attribut !! Stöds | |||
|- | |||
| Begrä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 === | |||
{| class="wikitable" | |||
! 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''' | |||
<pre> | |||
<?php | <?php | ||
Rad 56: | Rad 75: | ||
} | } | ||
?> | ?> | ||
</pre> | |||
Ovanstående exempel kommer att ge något liknande: | |||
<pre> | |||
|-allow_everyone_ni [DIR] | |-allow_everyone_ni [DIR] | ||
|-file1.txt | |-file1.txt | ||
Rad 71: | Rad 92: | ||
|-אּ\אּ_2\file5.txt | |-אּ\אּ_2\file5.txt | ||
\-אּ\אּ_2\file6_אּ.txt | \-אּ\אּ_2\file6_אּ.txt | ||
</pre> | |||
'''Exempel #2 Öppna en krypterad fil (rubrikkryptering)''' | |||
<pre> | |||
<?php | <?php | ||
$stream = fopen("rar://" . | $stream = fopen("rar://" . | ||
Rad 87: | Rad 110: | ||
); | ); | ||
var_dump(stream_get_contents($stream)); | 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)); | var_dump(fstat($stream)); | ||
?> | ?> | ||
</pre> | |||
Ovanstående exempel kommer att ge något liknande: | |||
<pre> | |||
string(26) "Encrypted file 1 contents." | string(26) "Encrypted file 1 contents." | ||
Array | Array | ||
Rad 123: | Rad 148: | ||
[blocks] => -1 | [blocks] => -1 | ||
) | ) | ||
</pre> | |||
= Sidslut = | = Sidslut = | ||
Orginalhemsidan på Engelska :https://www.php.net/manual/en/wrappers.rar.php | Orginalhemsidan på Engelska :https://www.php.net/manual/en/wrappers.rar.php |
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.