Dans PHP, il existe de nombreuses façons de traiter les fichiers. FOPEN est la fonction d'ouverture de fichiers la plus couramment utilisée, qui est utilisée pour ouvrir des fichiers ordinaires pour les opérations de lecture et d'écriture. Lors du traitement des fichiers dans des packages compressés, des fonctions zip_read et des fonctions connexes sont généralement utilisées, telles que zip_entry_read . Cet article comparera les différences entre les deux en détail et discutera dans quelles circonstances devraient être utilisées au lieu de Fopen .
FOPEN est la fonction de base des fichiers de fonctionnement PHP. Il peut ouvrir des fichiers locaux ou des fichiers réseau (par exemple: http://m66.net/path/to/file) pour la lecture ou l'écriture. L'utilisation est très simple et adaptée aux fichiers ordinaires.
<?php
$handle = fopen("http://m66.net/example.txt", "r");
if ($handle) {
while (($line = fgets($handle)) !== false) {
echo $line;
}
fclose($handle);
} else {
echo "Impossible d'ouvrir le fichier";
}
?>
Le code ci-dessus ouvre un fichier texte normal, lit et sort le contenu ligne par ligne via la boucle.
Zip_read est une fonction fournie par l'extension ZIP de PHP pour lire les entrées de fichiers dans le package ZIP Compressé. ZIP_OPEN ouvre le package compressé, Zip_read traverse les fichiers dans le package compressé un par un, et ZIP_ENTRY_READ est utilisé pour lire le contenu d'un fichier spécifique.
Exemple de code:
<?php
$zip = zip_open("/path/to/archive.zip");
if ($zip) {
while ($entry = zip_read($zip)) {
$name = zip_entry_name($entry);
echo "nom de fichier: $name\n";
if (zip_entry_open($zip, $entry, "r")) {
$content = "";
while ($data = zip_entry_read($entry, 1024)) {
$content .= $data;
}
echo $content;
zip_entry_close($entry);
}
}
zip_close($zip);
}
?>
Dans cet exemple, nous ouvrons un package compressé Zip, itérons via tous les fichiers du package compressé et lisons le contenu de chaque fichier.
caractéristiques | fopen | zip_entry_read |
---|---|---|
Objets applicables | Fichiers normaux (fichiers locaux ou réseau) | Fichiers dans le package compressé |
Méthode d'accès au fichier | Accès direct au chemin du fichier ou à l'URL | Ouvrez d'abord le package compressé, puis lisez les fichiers dans le package compressé |
Décompression du contenu des fichiers | Aucun (ne gérer que des fichiers non compressés ou des ressources réseau) | Décompressez automatiquement, lisez le contenu du fichier de package compressé |
Protocole de fichier de prise en charge | Prise en charge des fichiers locaux et des protocoles URL partiels | Prise en charge uniquement des fichiers internes zip |
Les fichiers sont compressés dans le package zip <br> Si le fichier fait partie du package compressé, vous ne pouvez pas utiliser directement FOPEN pour lire les fichiers dans le package compressé (même s'il est limité dans certains environnements via un protocole Zip: // ) similaire, vous devez utiliser ZIP_OPEN et ZIP_ENTRY_READ pour lire.
Besoin de traiter le contenu du fichier compressé
zip_entry_read vous aidera à décompresser automatiquement le contenu du fichier sans que vous le décompressez manuellement, ce qui est pratique et rapide.
Enregistrer l'espace disque ou réduire les fichiers temporaires <br> Lorsque vous lisez des fichiers dans le package compressé, vous pouvez les lire directement à l'aide de zip_entry_read sans les décompresser d'abord dans un répertoire temporaire.
Gérer la lecture de gros fichiers
Zip_entry_read prend en charge la lecture de données en morceaux, ce qui est pratique pour enregistrer la mémoire lors du traitement des fichiers volumineux.
FOPEN est utilisé pour ouvrir des fichiers ordinaires, prend en charge plusieurs protocoles et est simple et direct en fonctionnement.
Zip_read et zip_entry_read sont dédiés aux packages de compression ZIP, qui peuvent facilement lire le contenu des fichiers compressés.
Lorsque le fichier est dans le package compressé ZIP, ZIP_ENTRY_READ doit être utilisé, sinon FOPEN ne peut pas être accessible directement.
Utilisez des scénarios pour déterminer la méthode à utiliser. Lors de la manipulation du contenu du package compressé, Zip_entry_read est le premier choix.
Étiquettes associées:
fopen