PHP + Python - 用PHP将字符串传递给Python程序并解析输出
我在我的网络服务器上有一个很棒的Python程序,我想在我的PHP网页应用中使用它。
下面是一个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/.
你可能会把这个识别为一个典型的词性标注器。
无论如何,我对如何使用基于PHP的网页应用将像“我用叉子吃了披萨”这样的字符串发送给这个程序感到困惑,并以某种方式得到可以在PHP中进一步解析的响应。
我的想法是用PHP将这段文本传递给Python程序,然后获取响应,以便PHP可以选择某些类型的单词进行解析。
在PHP中,通常用到的函数是popen()和proc_open(),但popen()似乎只能用于发送或接收信息,而不能同时进行?popen()能让我访问从Python程序得到的输出吗?还是有更好的方法?那curl呢?
在PHP中,我的所有函数选项如下: http://us.php.net/manual/en/function.proc-open.php
我对此感到很迷茫,所以感谢你们的智慧之言!
5 个回答
1
你可以使用popen()这个函数,把输入作为命令行参数传给你的Python脚本,然后从popen给你的文件描述符中读取输出。如果你想和Python脚本进行双向互动,可以使用proc_open()。
proc_open手册中的示例1:http://us.php.net/manual/en/function.proc-open.php提供了一个这样的例子。
2
如果你想让你的Python脚本看起来更高级一点,可以给它加一个HTTP(或者xmlrpc)的前端,然后通过GET或POST请求来调用它。不过,这样做可能不太值得,毕竟要搭建这些东西需要不少麻烦的步骤!
2
我使用 exec() 来实现这个功能。
exec($command, $output);
print_r($output);