не получаеться получить картинку по http

Статус
В этой теме нельзя размещать новые ответы.

асс

Мой дом здесь!
Регистрация
13 Окт 2006
Сообщения
762
Реакции
230
Добрый вечер.
Как получить картинку с сайта через php

есть код курл например

PHP:
 curl_setopt($cUrl, CURLOPT_URL, $url);
    curl_setopt($cUrl, CURLOPT_PORT, $port);
    curl_setopt($cUrl,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($cUrl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)");
    curl_setopt($cUrl, CURLOPT_TIMEOUT, $timeout);
    $content = curl_exec($cUrl);

но вот как сделать чтоб картинку по указаному урлу была заргужена на комп.

если пробую copy то получаю
failed to open stream: HTTP request failed! HTTP/1.1 403
Forbidden in


тоесть нужно имитировать человека
PHP:
curl_setopt($cUrl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)");
 
Вот так можно :):
PHP:
<?php

$ch = curl_init ("http://static.php.net/www.php.net/images/php.gif");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata=curl_exec ($ch);
curl_close ($ch);

$fp = fopen("php.gif",'w');
fwrite($fp, $rawdata);
fclose($fp);

?>
 
Вот так можно :):
PHP:
<?php
$ch = curl_init ("http://static.php.net/www.php.net/images/php.gif");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata=curl_exec ($ch);
curl_close ($ch);
$fp = fopen("php.gif",'w');
fwrite($fp, $rawdata);
fclose($fp);
?>


У меня там jpg и он его сохраняет пустой :confused:
 
так пиши вместо .gif -> .jpg везде
 
Хм, вроде через курл все и сделано... Напиши свой код пожалуйста :).
 
Хм, вроде через курл все и сделано... Напиши свой код пожалуйста :).
PHP:
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1");
curl_setopt($curl, CURLOPT_USERAGENT, "Opera/9.5 (Windows NT 5.1; U; en)");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_COOKIEFILE, "cookiefile$numberthreads");
curl_setopt($curl, CURLOPT_COOKIEJAR, "cookiefile$numberthreads"); # SAME cookiefile
curl_setopt($curl, CURLOPT_URL, $kartinka); # this is where you first time connect - GET method authorization in my case, if you have POST - need to edit code a bit
curl_setopt($curl, CURLOPT_ENCODING, "gzip,deflate"); // "gzip,deflate");
$h = array(         'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                    'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
                    'Accept-Charset: windows-1251;q=0.7,*;',
                    'Keep-Alive: 300',
                    'Cache-Control: max-age=0');
curl_setopt($curl,CURLOPT_HTTPHEADER, $h);
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
$xxx = curl_exec($curl);
$f = fopen('/fotos/ss.jpg', "w");
    @fputs($f, $xxx);
    @fclose($f);
 
как вариант для имитации человека можно использовать , тогда код будет выглядеть так:
PHP:
<?php
include_once "Snoopy.class.php";
$s = new Snoopy();
$s->fetch("http://www.mysite.com/img.jpg");
file_put_contents("img.jpg", $s->results);
?>
 
но понаписал :)

может грабинг запрещен?

добавь вот такое:

PHP:
$Ref="http://site.ru/страница где показывается картинка";
curl_setopt($ch, CURLOPT_REFERER,$Ref);
 
но понаписал :)
может грабинг запрещен?
добавь вот такое:
PHP:
$Ref="http://site.ru/страница где показывается картинка";
curl_setopt($ch, CURLOPT_REFERER,$Ref);


Ну да, в первом посте я так и написал что есть ошибка, доступ запрещен

если пробую copy то получаю
failed to open stream: HTTP request failed! HTTP/1.1 403
Forbidden in

доступ запрещен качалкой.
А вообще с других все качается нормально.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху