2017-07-13 3 views
-3

Imaginez il y a une image à http://example.com/icon.jpg et je veux l'ajouter à un fichier zip sur mon propre nom sever « Stack.zip » en utilisant php. C'est mon code, mais ça ne marche pas.Comment ajouter un fichier d'un site Web à un fichier zip sur mon serveur en utilisant php?

$url="http://example.com/icon.jpg" 
$zip = new ZipArchive; 
echo $zip->open("Stack.zip"); 
$zip->addFile($url); 
$zip->close(); 

P.S. J'ai été capable de le faire avec des fichiers locaux, mais je n'ai pas réussi à le faire avec des adresses Internet. Voilà pourquoi j'ai posé cette question.

+0

Quelle est votre jusqu'à présent se permettre? Avez-vous regardé sur Internet? Par exemple [les manuels php] (http://php.net/manual/de/book.zip.php) –

+0

@AndreasLackner Oui, et j'ai réussi à le faire avec des fichiers locaux, mais pas avec des adresses de l'Internet. – Alireza

+0

Ensuite, il suffit de stocker le fichier dans un dossier temporaire local –

Répondre

0

A partir du manuel PHP: http://php.net/manual/en/ziparchive.addfile.php (PHP 5> = 5.2.0, PHP 7, PECL zip> = 1.1.0)

Cela suppose que vous voulez ajouter à un fichier zip existant sur votre serveur.

$url = 'https://www.stackoverflowbusiness.com/hubfs/logo-so-color.png?t=1499443352566'; 
$local_path = '/your/local/folder/'; 
$img = 'icon.jpg'; 
file_put_contents($local_path.$img, file_get_contents($url)); 

$zip = new ZipArchive; 
if ($zip->open($local_path.'Stack.zip') === TRUE) { 
    $zip->addFile($local_path.$img, $img); 
    $zip->close(); 
    echo 'ok'; 
} else { 
    echo 'failed'; 
} 

Si vous voulez garder la même structure de dossier que le fichier source d'origine, changer cette ligne ..

$zip->addFile($local_path.$img, $img); 

... à cette ...

$zip->addFile($local_path.$img); 

Si vous voulez que le même script pour créer le zip, vous pouvez trouver une fonction PHP ici: Add files to the zip