Php和python混编实现介绍

需求产生原因:某些使用PHP作为后台语言的网站可能会有调用Python等脚本语言的需求.例如我最近在做的数据处理工作中,由于所需处理的新闻文本数目过大,难以人工分类,所以需要一个文本分类函数,接受传入的文章输出文章应有的分类.然而php却没有可靠的实现方法.这时,就需要php调用python等脚本辅助处理.

解决办法:php提供了许多调用其他脚本或程序的方法,比如exec/system/popen/proc_open/passthru等,每种方法都有适用的情景.对于我的需求,exec/system/passthru是较好的选择

1. exec

原型:string exec ( string command [, array &output [, int &return_var]] )

描述:返回值保存最后的输出结果,而所有输出结果将会保存到$output数组,$return_var用来保存命令执行的状态码(用来检测成功或失败)。

例子:$ret = exec("ls -al", $output, $var);

注意:输出结果会逐行追加到$output中,因此在调用exec之前需要unset($output),特别是循环调用的时候。

//第一个参数表示要执行的python脚本,第二参数用于存储脚本的返回值,第三个参数存储的是状态码(0表示成功调用外部脚本,1 表示调用失败)

exec("python similarity_caculation.py",$array,$ret2);

原型:string system ( string command [, int &return_var] )2. system

描述:执行给定的命令,返回最后的输出结果;第二个参数是可选的,用来得到命令执行后的状态码。

system("python Most_powerful.py",$ret1);

3. passthru

原型:void passthru (string command [, int return_var])

描述:执行给定的命令,但不返回任何输出结果,而是直接输出到显示设备上;第二个参数可选,用来得到命令执行后的状态码。

例子:passthru("ls -al", $var);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 6,829评论 3 64
  • 架构师必须知道的26项PHP安全实践 PHP是一种开源服务器端脚本语言,应用很广泛。Apache web服务器提供...
    meng_philip123阅读 6,105评论 1 161
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 当给sq...
    xuningbo阅读 10,424评论 2 22
  • sqlmap用户手册 说明:本文为转载,对原文中一些明显的拼写错误进行修正,并标注对自己有用的信息。 ======...
    wind_飘阅读 2,098评论 0 5