|
|
|
| Пытаюсь открыть страницу фун-цией file_get_contents (), а оно вместо заданой страници всегда открывает главну. В чем может быть дело?
Я так думаю там стоит защита, и нужно работать через соккеты. Если причина в этом, то прошу привести простенький пример работы с соккетами.
Заранее благодарен. | |
|
|
|
|
|
|
|
для: dima_s_d_s
(26.01.2007 в 22:20)
| | А поиском пользоваться пробовали? | |
|
|
|
|
|
|
|
для: Саня
(26.01.2007 в 22:46)
| | Вот нашл пример, только не могу понять куда тут считывается страница?
На сколько я понял данные пишутся в переменную $fp так?
<?
$fname = '/playerinfo.php?playername=LordOS';
$fhost = 'www.neverlands.ru';
$x = 0;
$fp = fsockopen($fhost, 80, &$errno, &$errstr, 30) or die("could not connect");
fputs($fp,"HEAD $fname HTTP/1.0\nHOST: $fhost\n\n");
while (!feof($fp)) $x .= fgets($fp,128);
fclose($fp);
?>
|
| |
|
|
|
|
|
|
|
для: dima_s_d_s
(26.01.2007 в 23:03)
| | $fp - это дескриптор открытого сокета. В нём находится ответ сервера на последний запрос.
В цикле по 128 байт читаем данные из буффера и добавляем к переменной $x. | |
|
|
|
|
|
|
|
для: Саня
(27.01.2007 в 01:46)
| | Не очень понятно. Как мне считать всю страницу в переменную?
Если взять тот скрипт, то данные будут храниться в переменной $x? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(27.01.2007 в 01:48)
| | Да, данные полученные HEAD запросом... Для того, чтобы скачать страницу, нужно использовать метод GET.
Location: /pinfo.cgi?LordOS
// переадресация //
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(27.01.2007 в 09:25)
| | Кто может привести пример загрузки страници через соккет? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(27.01.2007 в 10:36)
| |
<?php
$fname = '/pinfo.cgi?LordOS';
$fhost = 'www.neverlands.ru';
$x = '';
$fp = fsockopen($fhost, 80, &$errno, &$errstr, 30) or die("could not connect");
fputs($fp,"GET $fname HTTP/1.0\r\nHOST: $fhost\r\n\r\n");
while (!feof($fp)) $x .= fgets($fp,128);
fclose($fp);
echo substr($x, strpos($x, "\r\n\r\n"));
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(27.01.2007 в 11:25)
| | Пробовал этот пример. Этаже ситуация. Вместо заданной считывает главную. Что может быть? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(27.01.2007 в 11:59)
| | Возможно там стоит проверка на реферер и user-agent.
<?php
$fname = '/pinfo.cgi?LordOS';
$fhost = 'www.neverlands.ru';
$x = '';
$fp = fsockopen($fhost, 80, &$errno, &$errstr, 30) or die("could not connect");
fputs($fp, "GET $fname HTTP/1.0\r\n".
"Host: $fhost\r\n".
"Referer: http://www.neverlands.ru/\r\n".
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01\r\n\r\n");
while (!feof($fp)) $x .= fgets($fp,128);
fclose($fp);
echo substr($x, strpos($x, "\r\n\r\n"));
?>
|
| |
|
|
|
|
|
|
|
для: Саня
(28.01.2007 в 13:54)
| | Супер. Теперь всё работает. Спасибо. | |
|
|
|
|
|
|
|
для: Саня
(28.01.2007 в 13:54)
| | Столкнулся с сайтом где даже такой вариант не работает. Может он проверяет еще что-то? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(03.02.2007 в 19:27)
| | Кто подскажет какие дополнительные параметры можно добавить в этот код (общение с соккетом)
<?php
$fname = '/pinfo.cgi?LordOS';
$fhost = 'www.neverlands.ru';
$x = '';
$fp = fsockopen($fhost, 80, &$errno, &$errstr, 30) or die("could not connect");
fputs($fp, "GET $fname HTTP/1.0\r\n".
"Host: $fhost\r\n".
"Referer: http://www.neverlands.ru/\r\n".
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01\r\n\r\n");
while (!feof($fp)) $x .= fgets($fp,128);
fclose($fp);
echo substr($x, strpos($x, "\r\n\r\n"));
?>
|
| |
|
|
|
|
|
|
|
для: dima_s_d_s
(04.02.2007 в 10:28)
| | Странно вообще... у меня работал тот код, что я приводил. Без реферера и юзер агента.
Если ты зарегистрирован там, попробуй отправить куки:
"Cookie: username=LordOS;password=qwerty;\r\n".
|
Ну, естесственно, вместо username и password нужно подставить реальные их названия ... может быть еще чего-то добавить придется.
> Столкнулся с сайтом где даже такой вариант не работает.
Можно взглянуть на этот сайт, или уже не нужно? | |
|
|
|