在 php 中运行 python 脚本


Run python script inside php

我正在尝试用php运行python脚本来测试文件读取,以便我可以继续工作并做更多代码。我尝试使用一个小的 txt 文件和 php 文件,但 python 脚本的输出是一个空字符串。所有文件都在同一个目录中,我在 VISTA 操作系统中使用 XAMPP。

PHP 文件

<?php
$validation= exec('python script.py juliodantas.txt') ;
echo $validation ;
var_dump($validation);
?>

蟒蛇文件: (script.py)

#!C:'Python27'python.exe
print "Content-Type: text/html'n"
import sys
fich_input= sys.argv[1]
def test(fich):
    input_fil=open(fich,'r')
    s=''
    cont=0
    for line in input_fil:
        cont+=1
        s+=line
    return (line,cont)
test(fich_input)

TXT文件是选项卡格式的文件(Juliodantas.txt)

CAS 微笑 英寸 Mol_name 实验室 机构 物种 Cell_type 亚细胞 Bio_target 条件 Asay_parameter 观察 Assay_ID 应变 组织 target_type 值 统一 比较 Experimental_error
12233 535 2435D 3R5RG 4T4T 4T 4T34T4 4T4T4 4TRGDF Vgery4 345Y4 Grfbg Gergh HJ6yu WDE Kukl derj,.I Gjyy HTHt5U ThyT5 THT56 THTRJ4yeg

PHP 的输出:

string(0) ""

如果我可以引用手册exec()

命令结果的最后一行。

您的 Python 程序打印出"Content-Type: text/html'n",因此其输出的最后一行是空行。

如果您希望程序的整个输出都在变量中,请使用第二个可选参数 exec

$validation = "";
exec('python script.py juliodantas.txt', $validation);
echo impode("'n", $validation); // should print "Content-Type: text/html'n"

更新:

我以前使用过已弃用(显然,现已删除)的引用传递调用语法。为我感到羞耻。此外,显然exec()将输出作为基于行的数组返回,因此如果您想将其作为单个字符串,则必须加入它。