Подскажите пожалуйста по функции 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);
}
?>