In PHP gibt es viele Möglichkeiten, Dateien zu verarbeiten. Fopen ist die am häufigsten verwendete Dateiöffnungsfunktion, mit der gewöhnliche Dateien zum Lesen und Schreiben von Vorgängen geöffnet werden. Bei der Verarbeitung von Dateien in komprimierten Paketen werden normalerweise zip_read und zugehörige Funktionen verwendet, wie z. B. zip_entry_read . In diesem Artikel wird die Unterschiede zwischen den beiden im Detail verglichen und unter den Umständen diskutiert, welche Umstände anstelle von Fopen verwendet werden sollten.
Fopen ist die grundlegende Funktion von PHP -Betriebsdateien. Es können lokale Dateien oder Netzwerkdateien (z. B. http://m66.net/path/to/file) zum Lesen oder Schreiben geöffnet werden. Die Verwendung ist sehr einfach und für normale Dateien geeignet.
<?php
$handle = fopen("http://m66.net/example.txt", "r");
if ($handle) {
while (($line = fgets($handle)) !== false) {
echo $line;
}
fclose($handle);
} else {
echo "Die Datei kann nicht geöffnet werden";
}
?>
Der obige Code öffnet eine normale Textdatei, liest und gibt die Inhaltszeile per Schleife aus.
ZIP_READ ist eine Funktion, die durch die ZIP -Erweiterung von PHP bereitgestellt wird, um Dateieinträge im ZIP -Komprimierungspaket zu lesen. ZIP_OPEN öffnet das komprimierte Paket, zip_read durchquert die Dateien im komprimierten Paket eins nach und nach, und zip_entry_read wird verwendet, um den Inhalt einer bestimmten Datei zu lesen.
Beispielcode:
<?php
$zip = zip_open("/path/to/archive.zip");
if ($zip) {
while ($entry = zip_read($zip)) {
$name = zip_entry_name($entry);
echo "Dateiname: $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);
}
?>
In diesem Beispiel öffnen wir ein komprimiertes ZIP -Paket, durch alle Dateien im komprimierten Paket und lesen den Inhalt jeder Datei.
Merkmal | fopen | ZIP_ENTRY_READ |
---|---|---|
Anwendbare Objekte | Normale Dateien (lokale oder Netzwerkdateien) | Dateien im komprimierten Paket |
Dateizugriffsmethode | Direkter Zugriff auf Dateipfad oder URL | Öffnen Sie zuerst das komprimierte Paket und lesen Sie dann die Dateien im komprimierten Paket |
Dekompression von Dateiinhalten | Keine (nur unkomprimierte Dateien oder Netzwerkressourcen umgehen) | Lesen Sie den Inhalt der komprimierten Paketdatei automatisch dekomprimieren |
Unterstützen Sie das Dateiprotokoll | Unterstützen Sie lokale Dateien und partielle URL -Protokolle | Unterstützen Sie nur interne Zip -Dateien |
Dateien werden in ZIP -Paket <br> komprimiert Wenn die Datei Teil des komprimierten Pakets ist, können Sie FOPEN nicht direkt verwenden, um die Dateien im komprimierten Paket zu lesen (auch wenn sie in einigen Umgebungen über ein ähnliches Zip: // -Protokoll begrenzt ist), müssen Sie zum Lesen zip_open und zip_entry_read verwenden.
Müssen komprimierte Dateiinhalte verarbeiten
ZIP_ENTRY_READ hilft Ihnen dabei, den Dateiinhalt automatisch zu dekomprimieren, ohne dass Sie ihn manuell dekomprimieren, was bequem und schnell ist.
Speichern Sie den Speicherplatz oder reduzieren Sie temporäre Dateien <br> Beim Lesen von Dateien im komprimierten Paket können Sie sie direkt mit zip_entry_read lesen, ohne sie zuerst in ein temporäres Verzeichnis zu dekomprimieren.
Behandeln Sie große Lesen des Datei -Chunked -Lesens
ZIP_ENTRY_READ unterstützt das Lesen von Daten, die beim Speichern von Speicher bei der Verarbeitung großer Dateien geeignet sind.
Fopen wird verwendet, um normale Dateien zu öffnen, unterstützt mehrere Protokolle und ist einfach und direkt im Betrieb.
ZIP_READ und ZIP_ENTRY_READ sind ZIP -Komprimierungspaketen gewidmet, die den Inhalt komprimierter Dateien problemlos lesen können.
Wenn sich die Datei im ZIP -komprimierten Paket befindet, muss zip_entry_read verwendet werden, andernfalls kann auf Fopen nicht direkt zugegriffen werden.
Verwenden Sie Szenarien, um zu bestimmen, welche Methode verwendet werden soll. Bei der Manipulation des Inhalts des komprimierten Pakets ist ZIP_ENTRY_READ die erste Wahl.
Verwandte Tags:
fopen