首页 > 编程知识 正文

在php中执行python文件(php运行python脚本)

时间:2023-12-06 11:46:57 阅读:312538 作者:NWVE

本文目录一览:

  • 1、怎么在php代码中调用python程序
  • 2、如何在PHP服务器里运行python脚本
  • 3、程序小白,问一下php网站想要运行Python文件需要怎么做?
  • 4、如何实现在PHP中调用Python并获取运行结果
  • 5、php调用python
  • 6、如何在linux服务器上用 PHP 执行 python 脚本

怎么在php代码中调用python程序

py和php放在同一个目录下面some.py------------------------------------------#!/usr/bin/env python#-*- coding:utf-8 -*-import sysdef do_some(a):return "dosome:%s" % aif __name__ == '__main__':a = sys.argv[1]if a:T = do_some(a)print T-------------------------------------------t.php?php$k = $_REQUEST['k'];if (!empty($k)){$k = trim($k);// $a = array();// exec('python ./some.py '.$k, $a);// echo $a[0];pa

如何在PHP服务器里运行python脚本

使用如下命令:

path %path%;"python安装目录"

通常是在C盘根目录python版本号 目录下

定位到python脚本目录下,例如D盘的pythonscript目录中的test.py文件,则使用:

d:cd d:pythonscript

程序小白,问一下php网站想要运行Python文件需要怎么做?

关于PHP调用Python数据传输问题

这是以前大学时做项目出现的问题,现在把它挪上来,希望给遇到问题的未来大佬给出一些小的思路,请大佬们不要大意的帮我改正,如果出现问题或者有更好的解决方法,希望大家可以给出,谢谢!

以前小组开展项目实训,我们小组选择的是大数据分析,其中有一个用python进行文本分析之后对用户输入的数据进行分析,然后输出对应的岗位及其他。要求是前端将文本要求传到后台php,php调用python程序处理,再将数据传给php,然后再传到前端,进行下一步处理。结果python传回的数据,在前端显示乱码了,而且得出的结果与单独运行python代码完全不同,一句话,就是php调用python程序期间出错了。

我很认真的检查了好几遍,确定自己php和python所有的编码都是用的utf-8编码,所以这一点是毋庸置疑的,那么问题究竟出在哪呢?php调用python语句是

$job = "有责任心,擅长JAVA";//传入的文本信息

$area = 'E:/text/sim_str.py';//Python程序的地址

$cmd = system("python3 $area 2C:/Users/Administrator/Desktop/2.txt $job",$ret);//2是将报错内容定位到这个文件,$ret是一个返回参数,0是正常,1是出错。

最后经过多次的测试,我发现传过去时对文字的编码出现了问题,应该不是UTF-8编码了。有位大神说,这是因为windows系统会自己对传输的信息进行再次编码。然后 我想直接改编码,结果这个python3编码改变出现了问题。最后我的解决方案是不通过系统传送,而是直接通过第三方数据库。双方都调用数据库。一切都可以解决了。

PS:后来又遇见过这种问题,我将python代码进行了修改,让它最终可以直接只传递数字,再在前端对数字进行判断。

如何实现在PHP中调用Python并获取运行结果

Python的import包含文件功能就跟PHP的include类似,但更确切的说应该更像是PHP中的require,因为Python里的import只要目标不存在就报错程序无法往下执行。要包含目录里的文件,PHP中只需要给对路径就OK。Python中则不同,下面来看看这个例子。

php调用python

py和php放在同一个目录下面

some.py

------------------------------------------

#!/usr/bin/env python

#-*- coding:utf-8 -*-

import sys

def do_some(a):

return "dosome:%s" % a

if __name__ == '__main__':

a = sys.argv[1]

if a:

T = do_some(a)

print T

-------------------------------------------

t.php

?php

$k = $_REQUEST['k'];

if (!empty($k))

{

$k = trim($k);

//    $a = array();

//    exec('python ./some.py '.$k, $a);

//    echo $a[0];

passthru('python ./some.py '.$k);

}

然后浏览器里面输入

浏览器会返回dosome:test

被我注释掉的代码也可以用来替代passthru

里面的$a 用来捕获输出 不过束腰注意的是 这里的arry 他是按照每一行'rn'当作一个元素 

但是passthru 则是你python里的print的原样输出

如何在linux服务器上用 PHP 执行 python 脚本

如果你有服务器权限的话直接exec命令调用python命令行就行了

php文件:test.php

?php

    exec("python hw.py",$array,$ret);

    echo("result: ");

    print_r($array);

    echo("return value: ".$ret);

?

py文件:hw.py(与php同一目录)

print ("Hello World");

php执行结果:

result: Array ( [0] = Hello World ) return value: 0

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。