RarEntry::extract
(PECL rar >= 0.1)
RarEntry::extract — Extrait une entrée d'une archive
Description
$dir
[, string $filepath
= ""
[, string $password
= NULL
[, bool $extended_data
= FALSE
]]] ) : bool
RarEntry::extract() extrait une entrée de données.
Ceci va créer un nouveau fichier dans le dossier spécifié par le paramètre
dir
portant un nom identique au nom de l'entrée,
tant que le second argument n'est pas spécifié. Voir ci-dessous pour plus
d'informations.
Liste de paramètres
-
dir
-
Chemin vers le dossier où le fichier extrait devra être créé. Ce paramètre sera utilisé uniquement si le paramètre
filepath
n'est pas fourni. Si ces 2 paramètres sont vides, l'extraction se fera dans le dossier courant. -
filepath
-
Chemin (relatif ou absolut) contenant le dossier et le nom du fichier à extraire. Ce paramètre écrase à la fois le paramètre
dir
et le nom original du fichier. -
password
-
Le mot de passe à utiliser pour décrypter cette entrée. Si l'entrée n'est pas crypté, cette valeur ne sera pas utilisée et peut être omise. Si ce paramètre est omis et que l'entrée est cryptée, le mot de passe fourni à la fonction rar_open(), si il existe, sera utilisé. Si un mauvais mot de passe est fourni, soit explicitement ou implicitement via la fonction rar_open(), la vérification CRC échouera et cette méthode échouera, en retournant
FALSE
. Si aucun mot de passe n'est fourni alors qu'il est nécessaire, cette méthode échouera en retournantFALSE
. Vous pouvez vérifier si une entrée est cryptée avec la méthode RarEntry::isEncrypted(). -
extended_data
-
Si vaut
TRUE
, les informations étendues comme NTFS ACLs et les informations sur le propriétaire Unix seront définies dans les fichiers extraits, si ils sont bien définies dans l'archives.
Avant la version 2.0.0, cette fonction ne gérait pas les chemins relatifs correctement. Utilisez la fonction realpath() comme contournement.
Historique
Version | Description |
---|---|
3.0.0 |
Le paramètre extended_data a été ajouté.
|
3.0.0 | Support des archives RAR contenant des entrées portant le même nom. |
Exemples
Exemple #1 Exemple avec RarEntry::extract()
<?php
$rar_file = rar_open('example.rar') or die("Échec lors de l'ouverture de l'archive RAR");
$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("L'entrée demandée n'existe pas !");
$entry->extract('/dir/to'); // Création de /dir/to/Dir/file.txt
$entry->extract(false, '/dir/to/new_name.txt'); // Création de /dir/to/new_name.txt
?>
Exemple #2 Comment extraire tous les fichiers d'une archive :
<?php
/* Exemple fourni par Erik Jenssen aka erix */
$filename = "foobar.rar";
$filepath = "/home/foo/bar/";
$rar_file = rar_open($filepath.$filename);
$list = rar_list($rar_file);
foreach($list as $file) {
$entry = rar_entry_get($rar_file, $file);
$entry->extract("."); // Extraction dans le dossier courant
}
rar_close($rar_file);
?>
Voir aussi
- RarEntry::getStream() - Récupère le gestion de fichier pour une entrée
- Le gestionnaire rar://
Version en cache
25/11/2024 07:14:52 Cette version de la page est en cache (à la date du 25/11/2024 07:14:52) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-rarentry.extract.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.