/rar//: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(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...')
 
 
(En mellanliggande sidversion av samma användare visas inte)
Rad 1: Rad 1:
rar://
rar:// — RAR


Description ¶
== rar:// — RAR ==
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 to be returned unencoded. If it's not specified, they will be returned url encoded – the reason for this is to allow the wrapper to be correctly used with built-in functionality like the RecursiveDirectoryIterator in the presence of file names that seem like url encoded data.
=== 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.


If the pound sign and the entry name part are not included, the root of the archive will be displayed. This differs from regular directories in that the resulting stream will not contain information such as the modification time, as the root directory is not stored in an individual entry in the archive. The usage of the wrapper with RecursiveDirectoryIterator requires the number sign to be included in the URL when accessing the root, so that the URLs of the children may be constructed correctly.
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.


Note: This wrapper is not enabled by default
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.
In order to use the rar:// wrapper, the » rar extension available from » PECL must be installed.


rar:// Available since PECL rar 3.0.0
{{Note|Detta omslag är inte aktiverat som standard. För att använda rar:// omslaget måste [[PECL]]-tillägget RAR vara installerat.}}


Usage ¶
'''rar://''' är tillgängligt sedan PECL rar 3.0.0
rar://<url encoded archive name>[*][#[<url encoded entry name>]]
Options ¶
Wrapper Summary
Attribute Supported
Restricted by allow_url_fopen No
Restricted by allow_url_include No
Allows Reading Yes
Allows Writing No
Allows Appending No
Allows Simultaneous Reading and Writing No
Supports stat() Yes
Supports unlink() No
Supports rename() No
Supports mkdir() No
Supports rmdir() No
Context options
Name Usage Default
open_password The password used to encrypt the headers of the archive, if any. WinRAR will encrypt all the files with the same password as the headers password when the later is present, so for archives with encrypted headers, file_password will be ignored.
file_password The password used to encrypt a file, if any. If the headers are also encrypted, this option will be ignored in favor of open_password. The reason there are two options is to cover the possibility of supporting archives with different headers and file passwords, should those archives arise. Note that if the archive does not have its headers encrypted, open_password will be ignored and this option must be used instead.
volume_callback A callback to determine the path of missing volumes. See RarArchive::open() for more information.
Examples ¶
Example #1 Traversing a RAR archive


=== 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:
}
}
?>
?>
The above example will output something similar to:
</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
Example #2 Opening an encrypted file (header encryption)
</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));
/* creation and last access date is opt-in in WinRAR, hence most
/* Skapelse- och sista åtkomstdatum är opt-in i WinRAR, därför har de flesta
  * files don't have them */
  * filer dem inte */
var_dump(fstat($stream));
var_dump(fstat($stream));
?>
?>
The above example will output something similar to:
</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.

Mall:Note

rar:// är tillgängligt sedan PECL rar 3.0.0

Användning

rar://<url-kodade arkivnamn>[*][#[<url-kodat postnamn>]]

Alternativ

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

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.