ZipArchive — ZipArchive-klassen: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
Ingen redigeringssammanfattning
Rad 1: Rad 1:
== Klassen ZipArchive ==
== Klassen [[ZipArchive]] ==
''(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)''
''(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)''


Rad 7: Rad 7:
=== Klassöversikt ===
=== Klassöversikt ===
<pre>
<pre>
class ZipArchive implements Countable {
class [[ZipArchive]] implements [[Countable]] {
     /* Konstanter */
     /* Konstanter */
     public const int CREATE;
     public const int CREATE;
Rad 72: Rad 72:
=== Egenskaper ===
=== Egenskaper ===
* '''lastId''' - Indexvärdet för senast tillagd post (fil eller katalog).
* '''lastId''' - Indexvärdet för senast tillagd post (fil eller katalog).
* '''status''' - Status för Zip-arkivet.
* '''status''' - Status för [[ZipArchive]]-arkivet.
* '''statusSys''' - Systemstatus för Zip-arkivet.
* '''statusSys''' - Systemstatus för [[ZipArchive]]-arkivet.
* '''numFiles''' - Antal filer i arkivet.
* '''numFiles''' - Antal filer i arkivet.
* '''filename''' - Filnamnet i filsystemet.
* '''filename''' - Filnamnet i filsystemet.
Rad 81: Rad 81:


==== Lägg till och hantera filer ====
==== Lägg till och hantera filer ====
* '''ZipArchive::addEmptyDir()'''   
* '''[[ZipArchive]]::addEmptyDir()'''   
Lägg till en ny katalog i arkivet.
Lägg till en ny katalog i arkivet.
* '''ZipArchive::addFile()'''   
* '''[[ZipArchive]]::addFile()'''   
Lägg till en fil i ZIP-arkivet från angiven sökväg.
Lägg till en fil i ZIP-arkivet från angiven sökväg.
* '''ZipArchive::addFromString()'''   
* '''[[ZipArchive]]::addFromString()'''   
Lägg till en fil till ett ZIP-arkiv med dess innehåll.
Lägg till en fil till ett ZIP-arkiv med dess innehåll.


==== Extrahera filer ====
==== Extrahera filer ====
* '''ZipArchive::extractTo()'''   
* '''[[ZipArchive]]::extractTo()'''   
Extrahera innehållet från arkivet till en angiven katalog.
Extrahera innehållet från arkivet till en angiven katalog.


==== Läs och hämta filer ====
==== Läs och hämta filer ====
* '''ZipArchive::getFromName()'''   
* '''[[ZipArchive]]::getFromName()'''   
Hämta innehållet från en post med dess namn.
Hämta innehållet från en post med dess namn.
* '''ZipArchive::statName()'''   
* '''[[ZipArchive]]::statName()'''   
Få detaljer om en post med dess namn.
Få detaljer om en post med dess namn.


==== Hantera lösenord och kryptering ====
==== Hantera lösenord och kryptering ====
* '''ZipArchive::setPassword()'''   
* '''[[ZipArchive]]::setPassword()'''   
Ange lösenord för det aktiva arkivet.
Ange lösenord för det aktiva arkivet.


==== Ta bort filer ====
==== Ta bort filer ====
* '''ZipArchive::deleteName()'''   
* '''[[ZipArchive]]::deleteName()'''   
Ta bort en post i arkivet med dess namn.
Ta bort en post i arkivet med dess namn.


Rad 111: Rad 111:
<pre>
<pre>
<?php
<?php
$zip = new ZipArchive();
$zip = new [[ZipArchive]]();
$filename = "./example.zip";
$filename = "./example.zip";


if ($zip->open($filename, ZipArchive::CREATE) !== TRUE) {
if ($zip->open($filename, [[ZipArchive::CREATE]]) !== TRUE) {
     exit("Kan inte skapa <$filename>\n");
     exit("Kan inte skapa <$filename>\n");
}
}
Rad 128: Rad 128:
<pre>
<pre>
<?php
<?php
$zip = new ZipArchive();
$zip = new [[ZipArchive]]();
if ($zip->open('example.zip') === TRUE) {
if ($zip->open('example.zip') === TRUE) {
     $zip->extractTo('./extraherad/');
     $zip->extractTo('./extraherad/');
Rad 142: Rad 142:
<pre>
<pre>
<?php
<?php
$zip = new ZipArchive();
$zip = new [[ZipArchive]]();
if ($zip->open('example.zip') === TRUE) {
if ($zip->open('example.zip') === TRUE) {
     $content = $zip->getFromName('fil1.txt');
     $content = $zip->getFromName('fil1.txt');
Rad 152: Rad 152:
?>
?>
</pre>
</pre>


= Sidslut =
= Sidslut =

Versionen från 17 november 2024 kl. 12.46

Klassen ZipArchive

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

Introduktion

Ett filarkiv som komprimeras med Zip-format.

Klassöversikt

class [[ZipArchive]] implements [[Countable]] {
    /* Konstanter */
    public const int CREATE;
    public const int EXCL;
    public const int CHECKCONS;
    public const int OVERWRITE;
    public const int RDONLY;
    public const int FL_NOCASE;
    public const int FL_NODIR;
    public const int FL_COMPRESSED;
    public const int FL_UNCHANGED;
    public const int FL_RECOMPRESS;
    public const int FL_ENCRYPTED;
    public const int FL_OVERWRITE;
    public const int FL_LOCAL;
    public const int FL_CENTRAL;
    public const int FL_ENC_GUESS;
    public const int FL_ENC_RAW;
    public const int FL_ENC_STRICT;
    public const int FL_ENC_UTF_8;
    public const int FL_ENC_CP437;
    public const int FL_OPEN_FILE_NOW;
    public const int CM_DEFAULT;
    public const int CM_STORE;
    public const int CM_SHRINK;
    public const int CM_DEFLATE;
    public const int CM_BZIP2;
    public const int CM_LZMA;
    public const int CM_ZSTD;
    public const int ER_OK;
    public const int ER_MULTIDISK;
    public const int ER_RENAME;
    public const int ER_NOENT;
    public const int ER_EXISTS;
    public const int ER_OPEN;
    public const int ER_MEMORY;
    public const int ER_WRONGPASSWD;
    public const int AFL_RDONLY;
    public const int AFL_IS_TORRENTZIP;
    public const int EM_AES_256;
    public const string LIBZIP_VERSION;

    /* Egenskaper */
    public readonly int $lastId;
    public readonly int $status;
    public readonly int $statusSys;
    public readonly int $numFiles;
    public readonly string $filename;
    public readonly string $comment;

    /* Metoder */
    public addEmptyDir(string $dirname, int $flags = 0): bool;
    public addFile(string $filepath, string $entryname = "", int $flags = 0): bool;
    public addFromString(string $name, string $content, int $flags = 0): bool;
    public extractTo(string $pathto, array|string|null $files = null): bool;
    public close(): bool;
    public getFromName(string $name, int $len = 0, int $flags = 0): string|false;
    public statName(string $name, int $flags = 0): array|false;
    public setPassword(string $password): bool;
    public deleteName(string $name): bool;
}

Egenskaper

  • lastId - Indexvärdet för senast tillagd post (fil eller katalog).
  • status - Status för ZipArchive-arkivet.
  • statusSys - Systemstatus för ZipArchive-arkivet.
  • numFiles - Antal filer i arkivet.
  • filename - Filnamnet i filsystemet.
  • comment - Kommentar för arkivet.

Metoder

Lägg till och hantera filer

Lägg till en ny katalog i arkivet.

Lägg till en fil i ZIP-arkivet från angiven sökväg.

Lägg till en fil till ett ZIP-arkiv med dess innehåll.

Extrahera filer

Extrahera innehållet från arkivet till en angiven katalog.

Läs och hämta filer

Hämta innehållet från en post med dess namn.

Få detaljer om en post med dess namn.

Hantera lösenord och kryptering

Ange lösenord för det aktiva arkivet.

Ta bort filer

Ta bort en post i arkivet med dess namn.

Exempel

Skapa ett Zip-arkiv

<?php
$zip = new [[ZipArchive]]();
$filename = "./example.zip";

if ($zip->open($filename, [[ZipArchive::CREATE]]) !== TRUE) {
    exit("Kan inte skapa <$filename>\n");
}

$zip->addFromString("fil1.txt", "Detta är innehållet i fil1.\n");
$zip->addFile("/path/till/fil2.php", "fil2.php");
$zip->close();
echo "Arkivet $filename har skapats.\n";
?>

Extrahera innehåll från ett Zip-arkiv

<?php
$zip = new [[ZipArchive]]();
if ($zip->open('example.zip') === TRUE) {
    $zip->extractTo('./extraherad/');
    $zip->close();
    echo "Extrahering lyckades!\n";
} else {
    echo "Misslyckades med att öppna arkivet.\n";
}
?>

Läsa innehåll från en specifik fil i arkivet

<?php
$zip = new [[ZipArchive]]();
if ($zip->open('example.zip') === TRUE) {
    $content = $zip->getFromName('fil1.txt');
    echo "Innehåll i fil1.txt:\n$content\n";
    $zip->close();
} else {
    echo "Misslyckades med att öppna arkivet.\n";
}
?>


Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/class.ziparchive.php
PHP Funktioner Funktionsreferens Komprimerings- och arkivtillägg Zip Funktioner


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 Stockholm som har sponsrat Linux.se med webbhotell.