Câu trả lời:
Nếu bạn đã allow_url_fopen
đặt thành true
:
$url = 'http://example.com/image.php';
$img = '/my/folder/flower.gif';
file_put_contents($img, file_get_contents($url));
Khác sử dụng 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
biến chứa URL của hình ảnh http://example.com/fetch-image.php?url=http://blabla.com/flower.jpg
. Trong trường hợp của ví dụ này, bạn chỉ có thể gọi $_GET['url']
tập lệnh PHP của mình, như vậy : $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);
Ở đây bạn đi, ví dụ lưu hình ảnh từ xa vào 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');
Câu trả lời của Vartec với cURL không hiệu quả với tôi. Nó đã làm, với một sự cải thiện nhẹ do vấn đề cụ thể của tôi.
ví dụ,
Khi có một chuyển hướng trên máy chủ (như khi bạn đang cố lưu hình ảnh hồ sơ facebook), bạn sẽ cần bộ tùy chọn sau:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Giải pháp đầy đủ trở thành:
$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);
Tôi không thể sử dụng bất kỳ giải pháp nào khác để làm việc, nhưng tôi đã có thể sử dụng wget:
$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');
}
Xem file()
hướng dẫn sử dụng PHP :
$url = 'http://mixednews.ru/wp-content/uploads/2011/10/0ed9320413f3ba172471860e77b15587.jpg';
$img = 'miki.png';
$file = file($url);
$result = file_put_contents($img, $file)
cài đặt wkhtmltoimage trên máy chủ của bạn, sau đó sử dụng gói packagist.org/packages/tohidhabiby/htmltoimage của tôi để tạo hình ảnh từ url của mục tiêu.
file_put_contents
v.v.