首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PHP中调用Python

在PHP中调用Python
EN

Stack Overflow用户
提问于 2008-10-03 13:44:41
回答 9查看 178K关注 0票数 85

我有一个最近编写的Python脚本,我使用带一些选项的命令行来调用它。我现在想要一个非常薄的web界面,以便在我的Mac上本地调用此脚本。

我不想经历在我的Mac上安装mod_python或mod_wsgi的小麻烦,所以我只想在PHP中执行一个system()或popen()来调用Python脚本。

有更好的主意吗?提前感谢!

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-10-03 14:40:12

根据您所做的工作,system()popen()可能是完美的选择。如果Python脚本没有输出,或者如果您希望Python脚本的输出直接到达浏览器,请使用system()。如果您想要将数据写入Python脚本的标准输入,或从Python脚本的标准输出中读取数据,请使用popen()。popen()只允许你读或写,但不能同时读写。如果您想要两者兼得,请查看proc_open(),但对于程序之间的双向通信,您需要小心避免死锁,因为在这种情况下,每个程序都在等待另一个程序执行某些操作。

如果您想将用户提供的数据传递给Python脚本,那么需要注意的一件重要事情就是命令注入。如果您不小心,您的用户可能会向您发送";evilcommand ;“之类的数据,并使您的程序违背您的意愿执行任意命令。

escapeshellarg()escapeshellcmd()可以在这方面提供帮助,但就我个人而言,我喜欢删除所有不是已知的好角色的内容,使用如下内容

代码语言:javascript
复制
preg_replace('/[^a-zA-Z0-9]/', '', $str)
票数 108
EN

Stack Overflow用户

发布于 2013-09-21 00:01:27

反引号运算符还允许您使用与上面类似的语法运行python脚本

在一个名为python.py的python文件中:

代码语言:javascript
复制
hello = "hello"
world = "world"
print hello + " " + world

在名为python.php的php文件中:

代码语言:javascript
复制
$python = `python python.py`;
echo $python;
票数 27
EN

Stack Overflow用户

发布于 2008-10-04 04:13:23

还有一个PHP扩展:Pip - Python in PHP,我从来没有试过,但为了这样的场合而加了书签。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/166944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档