繁体   English   中英

使PHP等待python脚本完成

[英]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()的时间。

有什么建议么?

popenr模式一起使用。:

<?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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM