欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 >建站经验 >PHP > PHP通过系统命令执行Python脚本

PHP通过系统命令执行Python脚本

2018-09-19 408 收藏 0 赞一个 0 真差劲 0 去评论

最近有用到支持向量机(SVM)搞机器学习的需求,目前Python对这块的支持还是蛮好的,然而前台对数据的展示和处理还是选择使用PHP来实现。

这就有了PHP和Python模块通信的需求,最初的想法是把Python模块作为一个独立的项目和PHP模块基于API进行通信,找了个Python的rest API框架EVEPython REST API Framework,但是这个框架除了官方文档以外,资料不多,部署起来比较麻烦,针对这个项目Python并没有做web展示的需求,那么去用个Python的web框架显然不是很划算。

这时候想到是否可以用PHP直接调用系统命令来执行Python模块,查手册,发现exec和shell_exec函数。其中exec可以把执行的结果全部返回到$output函数里(数组),$status是执行的状态 0为成功 1为失败。shell_exec直接返回运行结果。

我们先准备一个简单的Python脚本01.py

print 'this is a Python program with PHP'

然后写一个很简单的PHP脚本index.php去跑它

<?php
    $order = 'python 01.py';
        $data = shell_exec($order);
 
        var_dump($data);
?>

这时发现打印出来的$data是NULL,说明没有跑成功。但是在命令行直接执行php命令却可以得到想要的结果。原因是PHP不允许shell_exec函数在服务器中运行。

此时编辑php.ini文件,加上safe_mode = Off,重启服务器,问题解决。

1.png

这样一来,PHP项目就可以和Python部署在一起,彼此之间直接通过xml文件或者nosql数据库进行数据交换了。当然因为关闭了PHP的safe_mode模块,由于手上这个项目科研的性质较浓影响不大,对于商业项目,如果不是特别有把握,还是老老实实开发API吧么么哒

一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站所有资源(包括模板、素材、软件、字体等)仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

大家评论
分享是个好习惯