限制时间的php代码,限制php执行时间

您可以使用proc_open打开dig命令的管道,stream_select它并等待5秒,然后读取并关闭proc.

或多或少这样:

function getip()

{

$ip = null;

$descriptorspec = array(

0 => array("pipe", "r"), // stdin is a pipe that the child will read from

1 => array("pipe", "w"), // stdout is a pipe that the child will write to

2 => array("pipe", "w") // stderr

);

$process = proc_open("/usr/bin/dig $host +short A", $descriptorspec, $pipes);

if (is_resource($process)) {

// $pipes now looks like this:

// 0 => writeable handle connected to child stdin

// 1 => readable handle connected to child stdout

// 2 => readable handle

$ip = fgetsPending($pipes[1]);

fclose($pipes[0]);

fclose($pipes[1]);

fclose($pipes[2]);

// It is important that you close any pipes before calling

// proc_close in order to avoid a deadlock

proc_close($process);

}

return $ip;

}

function fgetsPending(&$in,$tv_sec=5)

{

if ( stream_select($read = array($in),$write=NULL,$except=NULL,$tv_sec) ) return fgets($in);

else return FALSE;

}

echo getip();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值