Signatur
Beschreibung
rar_solid_is() gibt zurück, ob das angegebene RAR-Archiv im Solid-Format vorliegt. Bei einem Solid-Archiv werden alle enthaltenen Dateien gemeinsam komprimiert, wodurch eine höhere Kompressionsrate erzielt wird, da der Kompressionsalgorithmus Redundanzen über Datei-Grenzen hinweg nutzen kann.
Der Nachteil von Solid-Archiven besteht darin, dass ein einzelner Fehler in der Archivdatei die Extraktion aller nachfolgenden Dateien unmöglich machen kann, da alle Dateien voneinander abhängen. Außerdem ist der wahlfreie Zugriff auf einzelne Dateien deutlich aufwendiger als bei normalen RAR-Archiven.
Die Funktion ist der prozedurale Gegenstück zur Methode RarArchive::isSolid(). Sie erwartet ein mit rar_open() (bzw. RarArchive::open()) geöffnetes Archiv-Handle.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $rarfile Pflicht | RarArchive | Ein geöffnetes RAR-Archiv-Objekt vom Typ RarArchive, wie es von rar_open() zurückgegeben wird. |
Rückgabewert
true zurück, wenn das Archiv im Solid-Format vorliegt, andernfalls false.Beispiele
Prüfen ob ein RAR-Archiv solid ist
<?php
$archiv = rar_open('/pfad/zum/archiv.rar');
if ($archiv === false) {
echo 'Archiv konnte nicht geöffnet werden.';
exit;
}
if (rar_solid_is($archiv)) {
echo 'Das Archiv ist ein Solid-Archiv.';
} else {
echo 'Das Archiv ist kein Solid-Archiv.';
}
rar_close($archiv);
Objektorientierte Variante mit RarArchive::isSolid()
<?php
$archiv = RarArchive::open('/pfad/zum/archiv.rar');
if ($archiv === false) {
echo 'Fehler beim Öffnen des Archivs.';
exit;
}
// Prozedurale Variante
$istSolid = rar_solid_is($archiv);
// Äquivalent: objektorientierte Methode
$istSolidOO = $archiv->isSolid();
echo 'Solid (prozedural): ' . ($istSolid ? 'Ja' : 'Nein') . PHP_EOL;
echo 'Solid (OO): ' . ($istSolidOO ? 'Ja' : 'Nein') . PHP_EOL;
$archiv->close();
// Wichtig · Fallstricke
Die Funktion setzt voraus, dass die PECL-Erweiterung rar installiert und aktiviert ist. Diese ist nicht Bestandteil der PHP-Standardinstallation und muss separat installiert werden (pecl install rar).
Bei der Verarbeitung von Solid-Archiven sollte darauf geachtet werden, dass beschädigte Solid-Archive deutlich mehr Datenverlust verursachen können als normale Archive, da alle nachfolgenden Dateien ab dem Fehler nicht mehr extrahierbar sind.