Antworten:
Wenn Sie allow_url_fopen
auf true
:
$url = 'http://example.com/image.php';
$img = '/my/folder/flower.gif';
file_put_contents($img, file_get_contents($url));
Andernfalls verwenden Sie 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);
$_GET
Variable zu verwenden, die die URL des Bildes enthält http://example.com/fetch-image.php?url=http://blabla.com/flower.jpg
. In diesem Beispiel können Sie einfach $_GET['url']
Ihr PHP-Skript aufrufen , wie folgt : $ch = curl_init($_GET['url']);
.
copy('http://example.com/image.php', 'local/folder/flower.jpg');
allow_url_fopen
).
$content = file_get_contents('http://example.com/image.php');
file_put_contents('/my/folder/flower.jpg', $content);
Im Beispiel wird das Remote-Image in image.jpg gespeichert.
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');
Vartecs Antwort mit cURL hat bei mir nicht funktioniert. Dies geschah mit einer leichten Verbesserung aufgrund meines spezifischen Problems.
z.B,
Wenn auf dem Server eine Umleitung erfolgt (z. B. wenn Sie versuchen, das Facebook-Profilbild zu speichern), müssen Sie folgende Optionen festlegen:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Die vollständige Lösung wird:
$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);
Ich konnte keine der anderen Lösungen zum Laufen bringen, aber ich konnte wget verwenden:
$tempDir = '/download/file/here';
$finalDir = '/keep/file/here';
$imageUrl = 'http://www.example.com/image.jpg';
exec("cd $tempDir && wget --quiet $imageUrl");
if (!file_exists("$tempDir/image.jpg")) {
throw new Exception('Failed while trying to download image');
}
if (rename("$tempDir/image.jpg", "$finalDir/new-image-name.jpg") === false) {
throw new Exception('Failed while trying to move image file from temp dir to final dir');
}
Siehe file()
PHP-Handbuch :
$url = 'http://mixednews.ru/wp-content/uploads/2011/10/0ed9320413f3ba172471860e77b15587.jpg';
$img = 'miki.png';
$file = file($url);
$result = file_put_contents($img, $file)
Installieren Sie wkhtmltoimage auf Ihrem Server und verwenden Sie dann mein Paket packagist.org/packages/tohidhabiby/htmltoimage, um ein Bild aus der URL Ihres Ziels zu generieren.
file_put_contents
usw. benötigt