webForumDet fria alternativet

Läsa zip-fil?

12 svar · 767 visningar · startad av axed

axedMedlem sedan nov. 200136 inlägg
#1

Har testad denna kodsnutt från php.net's sida:


$zip = zip_open("test.zip");

if ($zip) {
    while ($zip_entry = zip_read($zip)) {
        echo "Name:               " . zip_entry_name($zip_entry) . "\n";
        echo "Actual Filesize:    " . zip_entry_filesize($zip_entry) . "\n";
        echo "Compressed Size:    " . zip_entry_compressedsize($zip_entry) . "\n";
        echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";

        if (zip_entry_open($zip, $zip_entry, "r")) {
            echo "File Contents:\n";
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            echo "$buf\n";

            zip_entry_close($zip_entry);
        }
        echo "\n";

    }

    zip_close($zip);

}

Men får följande fel?

Warning: zip_read() expects parameter 1 to be resource, integer given in C:\www\ziptest.php on line 6

Warning: zip_close() expects parameter 1 to be resource, integer given in C:\www\ziptest.php on line 23

test.zip ligger i samma katalog som scriptet. Nån som har en aning?

itpastornMedlem sedan feb. 2007278 inlägg
#2

Kolla följande kommentar i manualen: http://se.php.net/manual/en/function.zip-open.php#75840

axedMedlem sedan nov. 200136 inlägg
#3

Ok tack. Körde zipFileErrMsg($zip) och får meddelandet: Zip File Function error: Can't open file.

Varför??

colioneMedlem sedan juni 20014 421 inlägg
#4

Lösenordsskydd? Felaktig sökväg? Skadad fil?

Kan du öppna den vanligt själv?

axedMedlem sedan nov. 200136 inlägg
#5

test.zip ligger i samma katalog som scriptet så sökvägen borde väl vara rätt? Inte lösenordskyddad och jag kan öppna den i t ex winzip/winrar så skadad är den knappast heller.

stevenetMedlem sedan juni 20001 251 inlägg
#6

http://se2.php.net/is_readable

<?php
$filename = 'test.zip';
if (is_readable($filename)) {
    echo 'Filen är läsbar.';
} else {
    echo 'Filen är inte läsbar.';
}
?>
axedMedlem sedan nov. 200136 inlägg
#7

Filen är läsbar får jag när jag testar med den funktionen. Nån inställning som kan strula till det?

stevenetMedlem sedan juni 20001 251 inlägg
#8

Har du php_zip.dll aktiverad i php.ini?

axedMedlem sedan nov. 200136 inlägg
#9

Ja det är aktiverat.

itpastornMedlem sedan feb. 2007278 inlägg
#10

Enligt min erfarenhet kan det hända att ett zip-program kan läsa en fil när ett annat går bet. Kan du testa din kod på en annan zip-fil?

axedMedlem sedan nov. 200136 inlägg
#11

Det funkar inte. Hittade att man kan använda följande kod istället:


$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    echo 'ok';
    $zip->extractTo('test/zip'); 
    $zip->close();
} 
else {
    echo 'failed, code:' . $res;
}

Någon nackdel med detta?

itpastornMedlem sedan feb. 2007278 inlägg
#12

Nej, inte i princip. OO i stället för procedurellt. För min del hade det varit förstahandsvalet.

axedMedlem sedan nov. 200136 inlägg
#13

Ok då kör jag på det istället. Tack alla.

124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)