У меня вопрос с указателями. Я в этом полный профан и поэтому если будет вопрос содержать логические ошибки, то поправить.
Я открываю процесс и получаю на него указатель
if( is_resource($f = popen("php file.php", 'r')) )
{
while(!feof($f))
{
$read = Array($f);
$write = null;
$except = Array($f);
$int = stream_select( $read, $write, $except, 10 /* сек */ );
if( $int && in_array( $f, $read ) ){}
else
{
/*
10 сек выполнения
*/
break;
}
$output .= fread($f,1024);
if(substr_count( $output,'syntax error') > 0)
{
break;
}
elseif(substr_count( $output,'Allowed memory') > 0)
{
break;
}
elseif(substr_count( $output,'execution time') > 0)
{
break;
}
else
{
echo "good!";
}
}
pclose($f);
}
Проблема в том , что у меня на скрипт дается 10 секунд. В самом исполняемом скрипте file.php стоит sleep(15)
И результат выполнения будет
10 секунд
15 секунд
Пока не завершится выполнение file.php я не могу повлиять на него. Допустим мне надо после 30 секунд его ожидания закрыть, а он выполняется и выполняется.