[PHP] Проблема с CURL - 400 Bad Request

T
На сайте с 28.06.2007
Offline
82
4343

Есть файл, в нём список УРЛ по которым нужно зайти и выгрузить страницу...

<?php

$url=file("url.txt");
for ($ide=0; $ide<count(file("url.txt")); $ide++)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$str = curl_exec($ch);
curl_close($ch);
echo $str; //Вывод страницы
}
?>

Проблема в том, что при запросе некоторых УРЛ параметр $str выводит не страницу, а 400 Bad Request.

Если отдельно (не через список (без цикла)) заходить на страницу, параметр $str её показывает.

В чём может быть проблема?

Пробовал ставить Timeout - не помогает.

Ещё в конце каждого цикла ставил sleep(10) :). Тоже не помогает.

Помогите пожалуйста.

xzorro
На сайте с 20.04.2009
Offline
7
#1

так может заработает


<?php
$url=file("url.txt");
for ($ide=0; $ide<count(file("url.txt")); $ide++)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url[$ide]);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$str = curl_exec($ch);
curl_close($ch);
echo $str; //Вывод страницы
}
?>
DyaDya
На сайте с 11.04.2007
Offline
147
#2

ТС, xzorro намекнул на правильное обращение к элементам массива: $url[$ide] - не помогло?

Можете ещё попробовать написать так: trim($url[$ide]), чтобы не было переносов строк в адресе и лишних пробелов...

Если всё ещё не помогло, то покажите, как вы делаете работающий запрос без цикла?

Выбирайте качественный хостинг (http://vashmaster.ru/informaciya/o_poleznyh_programmah/news83.php) и продвигайте сайты в СЕОПУЛЬТ (http://seopult.ru/ref.php?ref=72b5ed9561fe66a1). А на «SAPE» я в обиде :) Не упрекайте за очепятки, пишу вслепую (http://ergosolo.ru/) и также делаю сайты (http://www.vashmaster.ru/) ;)
F
На сайте с 12.09.2003
Offline
120
#3

как минимум смотрите что отправляет CURL

и соответственно что за URL's у вас

ewg777
На сайте с 04.06.2007
Offline
225
#4
T
На сайте с 28.06.2007
Offline
82
#5

xzorro, спасибо. Но я делал именно так, когда стирал всё лишнее в своём скрипте получилось уже не правильно. Спасибо вам что поправили :).

DyaDya, огромное спасибо! :) я уже и не знал что делать как только не извращался над скриптом, и через str_replace пробелы удалял, но не работало :(, а оказывается всё настолько просто и гениально :). Огромное спасибо! :)

Faster, спасибо, пробовал выводить, но была ошибка и я решил что мой Денвер не поддерживает эти функции :(.

ewg777, спасибо, буду иметь ввиду. :)

Всем спасибо за оперативную помощь! 🍻

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