J'ai besoin de sauvegarder une image d'une URL PHP sur mon PC. Disons que j'ai une page, http://example.com/image.php
, contenant une seule image "fleur", rien d'autre. Comment puis-je sauvegarder cette image de l'URL avec un nouveau nom (en utilisant PHP)?
Réponses
Trop de publicités? Si vous avez allow_url_fopen
défini sur true
:
$url = 'http://example.com/image.php';
$img = '/my/folder/flower.gif';
file_put_contents($img, file_get_contents($url));
Sinon, utilisez cURL :
$ch = curl_init('http://example.com/image.php');
$fp = fopen('/my/folder/flower.gif', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
Halil Özgür
Points
5486
soulmerge
Points
37314
stoefln
Points
2717
Vartec réponse avec cURL n'a pas fonctionné pour moi. Il l'a fait, avec une légère amélioration en raison de mon problème spécifique.
par exemple,
Quand il y a une redirection sur le serveur (comme quand vous êtes à essayer de sauver le facebook image de profil), vous aurez besoin suivant option:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
La solution complète devient:
$ch = curl_init('http://example.com/image.php');
$fp = fopen('/my/folder/flower.gif', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
curl_close($ch);
fclose($fp);
Sam152
Points
8472
Ici vous allez, l'exemple enregistre l'image distante à image.jpg.
function save_image($inPath,$outPath)
{ //Download images from remote server
$in= fopen($inPath, "rb");
$out= fopen($outPath, "wb");
while ($chunk = fread($in,8192))
{
fwrite($out, $chunk, 8192);
}
fclose($in);
fclose($out);
}
save_image('http://www.someimagesite.com/img.jpg','image.jpg');