Возможный дубликат:
Сохранение изображения с PHP-URL с помощью PHP
Привет, у меня есть изображение как ссылка на URL-адрес с сайта стороннего веб-сайта (IE http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com ). Что я хотел бы сделать, это запустите сценарий, который берет изображение и сохраняет его в каталоге на моем сервере, используя php. Может ли кто-нибудь указать мне правильный способ сделать это, пожалуйста? я бы использовал File Write?
Не нужно создавать ресурс 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.
Примечание: вы должны использовать принятый ответ, если это возможно. Это лучше, чем мое.
С GD-библиотекой это довольно просто.
Он построен, как правило, у вас, вероятно, есть его (используйте 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
(по умолчанию)