#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));