事实上,我有一个proc_open
函数,它将执行一个命令并将其子命令传递给它。这里有一个问题,有时会发生,通常不会发生。PHP - 等待执行单行的特定时间,否则返回
问题
当我想处理管道OUT输出没有从目标服务器和脚本响应将等待响应提高到.....
问题
我想说,等待20秒的反应,如果你没有得到任何回应。从函数返回。这一点很重要,我不想停止脚本执行,而只是从函数返回。
我必须使用多线程库作为POSIX?
有什么办法来实现这个想法?
任何想法将不胜感激。在此先感谢
代码示例
<?PHP
set_time_limit(0);
.....
public function test()
{
foreach ($this->commands as $cmd)
{
fwrite($pipes[0], "$cmd \n");
//Sometimes PHP stuck on the following line
//Wait for almost 20 sec if respond did not came return
$read = fread($pipes[1], 2096) . "\n";
}
}
也许这可以帮助你:http://stackoverflow.com/questions/7749869/how-can-i-set-time-out-for-fread-when-access-socket – nikoskip