Web development: Extrakce vzdáleného archívu ZIP
| Zobrazit obsah | Zobrazit komentáře | Zobrazit pouze komentáře
|
Už jste někdy potřebovali stáhnout ze vzdáleného serveru zip archív,
rozbalit ho a dál zpracovat? Že ne? Nic si z toho nedělejte, já taky ne, ale
dnes jsem byl požádán, abych tento problém vyřešil. Po nějakém tom konzultování
s kolegou Googlem
jsem nalezl zajímavý projekt - PhpConcept Library Zip.
Ten vyřeší vše za nás, my se jen musíme postarat o stažení souboru, a to
zařídí funkce PHP copy(). Zápis velice krátký, ale myslím, že
informativní.
unzipRemoteFile.php
<?php
// Insert ZIP library
require_once("./pclzip.lib.php");
// Remote file, path and local dir
$fileName = "remote.zip";
$serverPath = "http://www.domain.com/directory/";
$localDir = "./";
// Copy remote file to locat directory
if(!copy($serverPath . $fileName, $localDir . $fileName))
die("Copy error");
// Extract stored file
$archive = new PclZip($localDir . $fileName);
if($archive->extract() == 0) {
die("Error: " . $archive->errorInfo(true));
}
?>
Vyskytne-li se problém s funkcí copy z důvodu nastavení
safe mode, je možné použít následující, ne moc čistou alternativu.
// Copy remote file ($source) to local file ($destination)
function copy_remote_file($source, $destination) {
if(!$data = file_get_contents($source))
return false;
if(!$file = fopen($destination, "w+"))
return false;
if(!fputs($file, $data))
return false;
if(!fclose($file))
return false;
return true;
}
Komentáře k tématu 'Extrakce vzdáleného archívu...' (4 komentáře)
Funguje dokonale , cest autorovi. A hanbu tem kteri to na tom googlu nenasli jako ja ...
Aneb, kdo hleda, najde ![]()
A komu by se nelibila ta necista alternativa, tak sem to kdysi obesel pres ftp prikazy...
Kdyz neznas prihlasovaci udaje na vzdaleny server, je ti to ftp vcelku k nicemu.
Blog