php执行python脚本文件并输出相关的结果

零、前言

1、我用的是 LNMP 环境,好像 第三、四步 都不用做,因为默认的 “disable_functions=” 后面为空,也就是没有禁用掉相关的功能。

一、具体实现步骤如下: 
1, 将php文件,python文件放在通过一个目录下。或者写明python程序绝对路径。 
2,注意文件的可读写或执行权限 
3,修改php位置文件:php.ini 
sudo vim /etc/php5/apache2/php.ini 
找到 disable_functions=…….; 将里边禁用的pcntl_exec删除掉! 
4, 重启apache2 : sudo service apache2 restart 
5, web服务器用的用户路径里可能没有python。php中调用python时写上绝对地址

二、相关的代码(尽量把相关的东西放到相同文件夹啥的,这样路径就比较好处理了)

1、test.php

<?php
// 报告详细的错误
ini_set("display_errors", "On");
error_reporting(E_ALL | E_STRICT);

echo 'test.php</br>';
$program="python3  /data/wwwroot/www.example.com/api/test.py"; 
echo exec($program);
?>

2、test.py

print('开始test.py');
print('中间test.py');
print('最后test.py');

3、输出结果
输出最后一个 —— '最后test.py'

三、总结

1、如果py文件有中文,就不会进行输出!!应该需要设置一些东西吧!!!需要在test.py 第一行写上 # coding: GBK ;只有这样才能正常输出中文。可以先在服务器cmd里面去跑、调试 py文件!!

2、尽量使用 shell_exec(可以输出所py里面的输出) ,而不是 exec(只会输出最后一个 print) 函数,因为 后者只会输出 py输出列表里面的最后面一个,前面不会输出(“存在输出覆盖问题”),前者 shell_exec 会输出py输出的所有内容!!
shell_exec 如下:



exec如下:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值