[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: подскажите по функции fsockopen
tid888
Приветствую!

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

т. е. алгоритм верный?

1. отправляю запрос
2. получаю ответ
3. ответ неверный переходим к пункту 8
___4. ответ устраивает
___5. создаем новое соединение
___6. отправляем запрос
___7.закрываем соединение
8.закрываем соединение

незнаю как еще объяснить

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


<?php

$socket = fsockopen('test.ru', 80, $errno, $errstr, 30);
if(!$socket)die("$errstr($errno)");

$data = запрос...

//создаю заголовок
fwrite($socket,"POST /test.ru' HTTP/1.1\r\n");
fwrite($socket,"Host: test.ru'\r\n");
fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n");
...

fwrite($socket,"$data\r\n");
fwrite($socket,"\r\n");

$answer = '';
while(!feof($socket))
{
$answer.= fgets($socket, 4096);//получаю ответ
}

...Обробатываю ответ ($arroff)...

if($arroff == "что-то мне нужно")
{
$data = создаю новый запрос...


//снова соеденяюсь
$socket = fsockopen('test.ru', 80, $errno, $errstr, 30);
if(!$socket)die("$errstr($errno)");

//создаю заголовок, отправляю обработаный новый запрос
fwrite($socket,"POST /test.ru' HTTP/1.1\r\n");
fwrite($socket,"Host: test.ru'\r\n");
fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n");
...

fwrite($socket,"$data\r\n");
fwrite($socket,"\r\n");

$answer = '';
while(!feof($socket))
{
$answer.= fgets($socket, 4096);//получаю ответ
}

//закрываю соединение
fclose($socket);
set_time_limit(180);
}
else
{
//закрываю соединение
fclose($socket);
set_time_limit(180);
}
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.