Подскажите что не так в php коде.

leo3331
На сайте с 07.01.2007
Offline
154
476

Здравствуйте.

Скрипт ниже он выкачивает страницы отлично все но вот 1 урл не хочет - возвращает 400 bad request.

Причем если зайти через браузер по урлу то выкачивается картинка нормально. Через curl не хочет.

Урл http://stop-vto.ru/ выкачивает без проблем

а

$url = 'http://stop-vto.ru/wp-content/themes/headlines/thumb.php?src=http://stop-vto.ru/wp-content/uploads/2012/07/kniga-2.jpg&h=200&w=200&zc=1&q=90';

уже ошибка.

Вот сам код:

$url = 'http://stop-vto.ru/wp-content/themes/headlines/thumb.php?src=http://stop-vto.ru/wp-content/uploads/2012/07/kniga-2.jpg&h=200&w=200&zc=1&q=90';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt ($ch, CURLOPT_TIMEOUT, 10);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_ENCODING , 'gzip, deflate');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
ob_start();
curl_exec ($ch);
$page = ob_get_contents();
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
ob_end_clean();
curl_close ($ch);

echo $page;
samimages
На сайте с 31.05.2009
Offline
427
#1

"Не так" - скорее всего в адресе... но мануал по curl_init(); читать не пойду.

Проблема скорее всего именно в http://...=http://...

Опыт как иммунитет — приобретается в муках! Аудит семантики от 15К [долго] - ЛС
leo3331
На сайте с 07.01.2007
Offline
154
#2

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

komyak
На сайте с 20.01.2009
Offline
62
#3

Ссылку из src= кодируйте urlencode() и пробуйте.

Скидка на Зеброид 10%: 6347421FB0036DBA Купить Xrumer (http://www.botmasterru.com/xrumer/?p=xrumers) - поднимись в ТОП Купить А-парсер (http://a-parser.com/?ref=772) - лучший парсер всего))
leo3331
На сайте с 07.01.2007
Offline
154
#4

komyak, тоже самое

$url = 'http://stop-vto.ru/wp-content/themes/headlines/thumb.php?src='.urlencode('http://stop-vto.ru/wp-content/uploads/2012/07/kniga-2.jpg&h=200&w=200&zc=1&q=90');

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt ($ch, CURLOPT_TIMEOUT, 10);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_ENCODING , 'gzip, deflate');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // Эта опция в моем случае оказалась решающей
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
ob_start();
curl_exec ($ch);
$page = ob_get_contents();
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
ob_end_clean();
curl_close ($ch);

echo $page;

Сервер отвечает

HTTP/1.1 400 Bad Request

дани мапов
На сайте с 06.09.2012
Offline
204
#5

Так надо

$url = 'http://stop-vto.ru/wp-content/themes/headlines/thumb.php?src='.urlencode('http://stop-vto.ru/wp-content/uploads/2012/07/kniga-2.jpg').'&h=200&w=200&zc=1&q=90';

У меня, кстати и без urlencode работает.

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
leo3331
На сайте с 07.01.2007
Offline
154
#6

Разобрался... Ошибка в коде. Урл менялся до выполнения curl :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий