php调用本地perl脚本,从PHP脚本运行perl文件,但不要等待Windows服务器上的输出

我试图从一个php脚本中执行一个perl脚本。我已经使用了各种方法,比如exec、popen和proc_open,但是我还有几个问题要解决,而好的老谷歌并没有给我答案。

我需要在php文件中运行.pl脚本(将一个变量传递给脚本,这个变量是一个数字),但不要让php脚本等待.pl完成(在服务器上运行.pl可能需要4-5个小时)。我不期望从perl脚本返回任何输出(perl脚本将其输出记录到mysql数据库),所以我只需要它在服务器上运行,让php脚本继续运行。

在运行apache、php和mysql的Windows机器上运行时,有一些障碍需要克服。

我想我已经看到了linux的解决方案,但是它需要留在Windows机器上。

我正在使用以下代码尝试proc_open方法(proc_open行上的35是我需要传递给perl脚本的测试id):

$descriptorspec = array(

0 => array("pipe","r"),

1 => array("pipe","w"),

2 => array("file","./error.log","a")

) ;

proc_close(proc_open('perl perlscript.pl 35', $descriptorspec, $pipes));

$i = 0;

while ($i < 1000) {

echo ++$i;

}

现在,这段代码确实执行了perl脚本,但是放在它后面的while循环(只是为了测试)永远不会执行(我没有等待perl脚本完成,看它是否完成),因为它必须等待.pl完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值