
23.02.2008, 04:49
|
|
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
С нами:
9785147
Репутация:
137
|
|
как понял начало нужно написат парсер выдирающий из страницы нужное нам значение.
возбмём в пример яндэкс например нам нужно узнать значение id из этой строки (17 строка ответа)
</script><table id=head><tr> итд .....
и отправить запрос с этим значением запрос скажем запрос будет
http://www.yandex.ru/yandsearch?text=значение
Код:
use Socket;
$host="www.yandex.ru";
$port="80";
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr);
send (SOCK, "GET / HTTP/1.0\n\n", 0);
@data=<SOCK>; # ответ сервера
close(SOCK);
$fullitself=@data[17]; # считаем в какой строке ответа нужное нам значение она 17тая
@temp=split('table id=',$fullitself); # table id= это символы которые идут перед нашим значением
@semp=split('>',@temp[1]); # > а этот символ после нашего значения
$id = @semp[0]; # и так наше значение это переменная $id
connect(SOCK, $paddr);
send (SOCK, "GET /yandsearch?text=",$id," HTTP/1.0\n\n", 0); #отправляем запрос
@data2=<SOCK>;
close(SOCK);
# извените если гденибуть ошибся, не проверял
но вот если позиция строки постоянно меняется в ответе нужно будет ещё писать цикл который будет находить эту строку переберая каждую в этом массиве.
но намного легче это будет реализовать в пхп так как там есть специальная функция которая исчет ключ по значению array_search(" значение", $массив);
Последний раз редактировалось ZET36; 23.02.2008 в 05:15..
|
|
|