funktioniert ab und zu... manchmal
Mit Hilfe von PHP können Sie sich den Inhalt eines Zip-Archivs anzeigen und dessen Inhalt auch automatisch entpacken lassen.
Bevor Sie beginnen sollten Sie überprüfen, ob in Ihrer PHP-Version die Zip-Erweiterungen installiert bzw. aktiviert sind.
Falls dies der Fall ist, können Sie mit dem folgenden PHP-Script die Zip-Datei öffnen und Informationen über den Originaldateinamen, die Dateigröße (komprimiert und unkomprimiert) sowie das Komprimierungsverhältnis erhalten. Zudem werden die enthaltenen Dateien gleichzeitig in den Ordner entpackt, in dem das PHP-Script liegt.
Quellcode
1.
<?php
2.
3.
$ZipPointer = zip_open("C:\\datei.zip");
4.
5.
if($ZipPointer)
6.
{
7.
while($GezippteDatei = zip_read($ZipPointer))
8.
{
9.
echo"Dateiname: ",
10.
zip_entry_name($GezippteDatei),
11.
"
",
12.
"Dategröße: ",
13.
zip_entry_filesize($GezippteDatei),
14.
" Bytes
",
15.
"Komprimierte Größe: ",
16.
zip_entry_compressedsize($GezippteDatei),
17.
" Bytes
",
18.
"Komprimierungsverhältnis: ",
19.
round((1-(zip_entry_compressedsize($GezippteDatei)/zip_entry
_filesize($GezippteDatei)))*100, 1),
20.
"%
";
21.
22.
if(zip_entry_open($ZipPointer, $GezippteDatei, "r"))
23.
{
24.
$FilePointer = fopen(zip_entry_name($GezippteDatei), "w");
25.
fwrite($FilePointer, zip_entry_read($GezippteDatei, zip_entry_filesize($GezippteDatei)));
26.
fclose($FilePointer);
27.
28.
zip_entry_close($GezippteDatei);
29.
}
30.
}
31.
32.
zip_close($ZipPointer)
;
33.
}
34.
35.
?>
So sollte das Script auch mit Ordnern
funktionieren (allerdings wurden Infos entfernt):
<?php
$ZipPointer = zip_open("C:\\datei.zip");
if($ZipPointer)
{
while($GezippteDatei = zip_read($ZipPointer))
{
if (preg_match("/\/$/",
zip_entry_name($GezippteDatei)))
{
mkdir(zip_entry_name($GezippteDatei), 0744);
}
else {
if(zip_entry_open($ZipPointer, $GezippteDatei,
"r"))
{
$FilePointer =
fopen(zip_entry_name($GezippteDatei), "w");
fwrite($FilePointer,
zip_entry_read($GezippteDatei,
zip_entry_filesize($GezippteDatei)));
fclose($FilePointer);
zip_entry_close($GezippteDatei);
}
}
}
zip_close($ZipPointer);
}
?>
MfG rjchio
Bitte beachten Sie, dass Sie ggf. den vollständigen absoluten Pfad zur Datei angeben müssen, um keine Fehlermeldung zu erhalten. |