PHP + Python - 使用PHP将字符串传递给Python程序,并解析输出

时间:2011-02-20 23:38:16

标签: php python

我的网络服务器上有一个很棒的Python程序,我希望在我的PHP Web应用程序中使用它。

以下是python命令的示例,以及您在终端中看到的输出:

>>> print MBSP.parse('I ate pizza with a fork.')

I/PRP/I-NP/O/NP-SBJ-1/O/i
ate/VBD/I-VP/O/VP-1/A1/eat
pizza/NN/I-NP/O/NP-OBJ-1/O/pizza
with/IN/I-PP/B-PNP/O/P1/with
a/DT/I-NP/I-PNP/O/P1/a
fork/NN/I-NP/I-PNP/O/P1/fork ././O/O/O/O/. 

您可能会将此识别为典型的POS标记。

无论如何,我很困惑如何使用基于PHP的Web应用程序向该程序发送一个字符串,如“我用叉子吃披萨”,并以某种方式得到回复的方式可以进一步用PHP解析。

我们的想法是使用PHP将此文本传递给Python程序,然后通过选择某些类型的单词来获取由PHP解析的响应。

似乎在PHP中,通常的嫌疑人是popen()和proc_open(),但popen()仅用于发送或接收信息 - 不是两者兼而有之? popen()是否能够让我访问我从Python程序获得的输出(上图)?还是有更好的方法?怎么样卷曲?

以下是PHP中函数方面的所有选项: http://us.php.net/manual/en/function.proc-open.php

我迷失了,所以感谢你明智的智慧之词!

5 个答案:

答案 0 :(得分:2)

我为此目的使用exec()

exec($command, $output);
print_r($output);

答案 1 :(得分:2)

如果你想变得更重一点/更高级...给你的python脚本一个http(或xmlrpc)前端,并用GET / POST调用它。可能不值得所有这些机器!

答案 2 :(得分:1)

你可以使用popen(),并将输入作为命令行参数传递给Python脚本,然后读取文件描述符popen给你的输出,或proc_open(),如果你想与双向交互Python脚本。

proc_open手册中的示例1:http://us.php.net/manual/en/function.proc-open.php给出了一个示例。

答案 3 :(得分:0)

如果您的Python需要它作为stdin,您可以尝试使用命令行:

echo "I ate pizza!"|my_python_progam.py

然后阅读输出。像往常一样,在将其发送到命令行之前进行适当的输入验证。

答案 4 :(得分:0)

这样的事情会起作用

    $command = '/usr/bin/python2.7 /home/a4337/Desktop/script.py'
     $pid = popen('$command',r)
      ........
       ........
        .........
         pclose($pid)