Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Считывание информации с другого сайта


Автор: hugi 24.8.2007, 16:24
у меня функция file_get_contents считывает информацию
Код

$row[0]=имя;
$url=$url="http://devilscity.combats.ru/inf.pl?login=".urlencode($row[0]);
$data=file_get_contents($url);


но вот только по адресу где в имени есть пробел не хочет читать
http://angelscity.combats.ru/inf.pl?login=Gipsy Margo

Цитата

Warning: file_get_contents(http://devilscity.combats.ru/inf.pl?login=Gipsy%20Margo) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in


Я уже вроде заменил пробел на %20 все равно не помогает

пробовал пробел заменить на + не помогает. Прогонял через mysql_escape_string, urldecode, urlencode, rawurldecode, htmlspecialchars.

второй вариант

Код

$url="http://devilscity.combats.ru/inf.pl?login=".urlencode($row[0]);
$ch  = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);
preg_match("/\"http:\/\/[A-z\.?=\/ ]{0,60}\"/i",$data,$url);
$url=str_replace("\"","",$url[0]);
                    
$ch  = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);
echo $url;                
echo $data;


первый раз считываю страницу, мне выдает что файл перенаправлен туда то, я нахожу куда и чатаю оттуда, но все равно на читает.

Имена для проверки
hugi
Gipsy Margo
ALEX skorpio

Если в имени пробела нет читает свободно.
помогите.

M
Guedda
Модератор: Пользуйтесь кнопкой "Код"!

Автор: shiriy 3.10.2007, 22:52
попробуй так:
Код

$file_url = 'http://angelscity.combats.ru/inf.pl?login=Gipsy Margo';
$file_content = file($file_url);

$file_content будет массивом, содержащим строки странички с указанным адресом.
Во всяком случае должен быть, если сработает.

Автор: ST_Falcon 4.10.2007, 01:54
помоему на комбатсе просто защита о таких ботов. попробуй через curl притвориться браузером.

Автор: BuShaRt 4.10.2007, 07:48
Проблема не в том, что там ридерект на другой поддомен?

Автор: console 4.10.2007, 11:37
Попробуй
Код

curl_setopt($curl_handle, CURLOPT_FOLLOWLOCATION, 1);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)