PHP сохранить файл изображения
Возможный дубликат:
Сохранение изображения из PHP URL
У меня есть изображение в виде URL-ссылки со стороннего веб-сайта (IE http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com). Я хочу запустить скрипт, который берет изображение и сохраняет его в каталоге на моем сервере, используя php. Как это сделать? я бы использовал File Write?
Ответы
Ответ 1
Не нужно создавать ресурс GD, как предлагалось другим.
$input = 'http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com';
$output = 'google.com.jpg';
file_put_contents($output, file_get_contents($input));
Примечание. Это решение работает только в том случае, если вы настроите разрешение на доступ к URL-адресам. Если вышеприведенное решение не работает, вам нужно будет использовать cURL.
Ответ 2
Примечание: вы должны использовать принятый ответ, если это возможно. Это лучше, чем мое.
Это довольно легко с GD library.
Он обычно создается, возможно, у вас есть (используйте phpinfo()
для проверки)
$image = imagecreatefromjpeg("http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com");
imagejpeg($image, "folder/file.jpg");
Вышеуказанный ответ лучше (быстрее) для большинства ситуаций, но с GD вы также можете изменить его в некоторой форме (например, обрезка).
$image = imagecreatefromjpeg("http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com");
imagecopy($image, $image, 0, 140, 0, 0, imagesx($image), imagesy($image));
imagejpeg($image, "folder/file.jpg");
Это работает, только если allow_url_fopen
- true
(по умолчанию)