[英]Make PHP wait for python script to complete
我在PHP中使用exec()命令运行将产生一些输出的python脚本。 这个python脚本查询一个相当大的PostgreSQL数据库,因此确实需要一两秒钟才能执行。 这是我的代码:
test.php
<?php
$output = exec('/usr/local/bin/python2.7 test.py', $output);
var_dump($output);
?>
test.py
import nfldb
db = nfldb.connect()
q = nfldb.Query(db)
q.game(season_year=2012, season_type='Regular')
for pp in q.sort('passing_yds').limit(10).as_aggregate():
print pp.player, pp.passing_yds
通过从命令行运行python脚本并在python脚本中放置测试“ print 10”以确保php脚本正常运行,所有代码均可以正常运行。
我很确定,因为执行脚本需要花费几秒钟的时间,PHP并未正确等待输出。 我尝试了set_time_limit()函数,但实际上并没有计算exec()的时间。
有什么建议么?
将popen
与r
模式一起使用。:
<?php
$handle = popen('/usr/local/bin/python2.7 test.py', 'r');
$output = fread($handle, 1024);
var_dump($output);
pclose($handle);
?>
您正在将exec()
的返回值分配给$ output,这将用程序的数字返回值覆盖实际输出。 不要那样做
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.