我的网络服务器上有一个很棒的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
我迷失了,所以感谢你明智的智慧之词!
答案 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)