Gifts
30.09.2008, 13:25
К примеру, есть такой скрипт @set_time_limit(0);
@ini_set("max_execution_time", 0);
@ignore_user_abort(1);
switch ($_GET['cmd'])
{
case 'start':
$f=fsockopen('ya.ru',80);
$status=stream_get_meta_data($f);
while (!$status['eof'])
{
sleep(1);
$status=stream_get_meta_data($f);
}
break;
case 'send':
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: ya.ru\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($f, $out);
while (!feof($f))
{
echo fgets($f, 128);
}
fclose($f);
break;
}
При обращении к скрипту ?get=start создается подключение к серверу. Теперь мы можем закрыть например страницу/уйти пить чай/etc.
Наконец мы хотим отправить в это созданное подключение, какую то информацию.
Собственно вопрос - как это реализовать и возможно ли это? Вижу только несколько путей -
1) в цикле обработки while мы делаем обращение к файлам/базе и забираем оттуда информацию которую нужно отправить.
2) Каким то образом записываем resource от созданного подключения и обращаемся с ним (возможно ли?)
P.S. ну и такой вопрос - как остановить выполнение скрипта с ignore_user_abort и set_time_limit(0) без перезапуска apache
@ini_set("max_execution_time", 0);
@ignore_user_abort(1);
switch ($_GET['cmd'])
{
case 'start':
$f=fsockopen('ya.ru',80);
$status=stream_get_meta_data($f);
while (!$status['eof'])
{
sleep(1);
$status=stream_get_meta_data($f);
}
break;
case 'send':
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: ya.ru\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($f, $out);
while (!feof($f))
{
echo fgets($f, 128);
}
fclose($f);
break;
}
При обращении к скрипту ?get=start создается подключение к серверу. Теперь мы можем закрыть например страницу/уйти пить чай/etc.
Наконец мы хотим отправить в это созданное подключение, какую то информацию.
Собственно вопрос - как это реализовать и возможно ли это? Вижу только несколько путей -
1) в цикле обработки while мы делаем обращение к файлам/базе и забираем оттуда информацию которую нужно отправить.
2) Каким то образом записываем resource от созданного подключения и обращаемся с ним (возможно ли?)
P.S. ну и такой вопрос - как остановить выполнение скрипта с ignore_user_abort и set_time_limit(0) без перезапуска apache