Не удается захватить изображение с определенного сайта с помощью php, как загрузить изображение с помощью php?

#php

#php

Вопрос:

Не удается захватить изображения с определенного сайта с помощью PHP, но для этого сайта работает PYTHON, как загрузить изображения с помощью PHP?

URL-адрес изображения является https://www.autoopt.ru/product_pictures/big/bcb/054511.jpg

Если я вставлю другой URL-адрес другого сайта, картинка загрузится, но этот сайт не работает.

я пытаюсь с помощью файла поместить содержимое и так далее, мой последний код

 lt;?php  function downloadImage($img_url){   $image = file_get_contents($img_url);  $img_save_path = realpath(dirname(__FILE__)) . '/assets/upload_products/';  $image_name = basename($img_url);  $image_fullpath = $img_save_path.$image_name;   $ch = curl_init ($img_url);  curl_setopt($ch, CURLOPT_HEADER, 0);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);  $raw=curl_exec($ch);  curl_close ($ch);  if(file_exists($image_fullpath)){  unlink($image_fullpath);  }  $fp = fopen($image_fullpath,'x');  fwrite($fp, $raw);  fclose($fp);    return true; }  downloadImage('https://www.autoopt.ru/product_pictures/big/bcb/054511.jpg');  

Комментарии:

1. вероятно, bcoz источник блокирует ваш запрос. Попробуйте передать пользовательский агент.

2. @OMiShah да, я проверил запрошенные заголовки, скопировал больше всего, и это работает, tnx.

Ответ №1:

Вам не нужно делать все это, чтобы сохранить изображение, если вы собираетесь его использовать file_get_contents . Это можно сделать, только используя:

file_put_contents($image_fullpath, file_get_contents($img_url));

Кроме того, как упоминал Оми Шаш в комментариях, вам нужно будет передать информацию о заголовке, чтобы file_get_contents он работал с этим URL-адресом. Я только что провел тест, и он сработал.

 //set header info $opts = array('http'=gt;array('header' =gt; "User-Agent:MyAgent/1.0rn"));  //Basically adding headers to the request $context = stream_context_create($opts); file_put_contents($image_fullpath, file_get_contents($img_url, false, $context));