A axed Medlem sedan nov. 2001 36 inlägg Frågan 3 aug. 2007 08:12 #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?
A axed Medlem sedan nov. 2001 36 inlägg Ok tack. Körde zipFileErrMsg($zip) och får meddelandet: Zip File Function error: Can't open file.
Varför??
C colione Medlem sedan juni 2001 4 421 inlägg Lösenordsskydd? Felaktig sökväg? Skadad fil?
Kan du öppna den vanligt själv?
A axed Medlem sedan nov. 2001 36 inlägg 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.
S stevenet Medlem sedan juni 2000 1 251 inlägg 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.';
}
?>
A axed Medlem sedan nov. 2001 36 inlägg Filen är läsbar får jag när jag testar med den funktionen. Nån inställning som kan strula till det?
S stevenet Medlem sedan juni 2000 1 251 inlägg Har du php_zip.dll aktiverad i php.ini?
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?
A axed Medlem sedan nov. 2001 36 inlägg 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?
Nej, inte i princip. OO i stället för procedurellt. För min del hade det varit förstahandsvalet.
A axed Medlem sedan nov. 2001 36 inlägg Ok då kör jag på det istället. Tack alla.