繁体   English   中英

如何在 php 中使用 exec() function 运行 python 文件

[英]how to run a python file using exec() function in php

这是我的 php 表格 (form1.php)

<html>
<body>

<form action="process1.php" method="post">
E-mail: <input type="text" name="email"  required ><br><br>
Password: <input type="text" name="pass"  required ><br><br>
<input type="submit">
</form>
        <html>
    <body>

过程.php

    <?php $email = $_POST["email"]; ?>
    <?php $pass  = $_POST["pass"]; ?>
    
    
    <?php echo($email) ?>    <br>
    <?php echo($pass) ?>   <br> 
   

我想使用来自 php 的 $email、$pass 变量值。 我想使用 python 将变量中的数据发送到我的 salesforce 帐户到自定义 object ...

python 文件

import requests
import json
from simple_salesforce import Salesforce

sf = Salesforce(username="USER", password= "PWD",security_token="" )
print(sf)
params = {
    "grant_type": "password",
    "client_id": "X0000XXXX", 
    "client_secret": "XX00000X",
    "username": "XXX0XX", 
    "password": "XX0XX"
}

dataset = [{'email__c':'$email(this should be the variable from php)', 'password__c': '$pass (this should be the variable from php) '}]
sf.bulk.aryan__c.insert(dataset,batch_size=1,use_serial=True)
    
   

首先,您需要使您的 python 文件 CLI 兼容。 您需要抓住 arguments 最简单的方法是这样的:

import sys

def myFunc(user, pwd):
    print(user,pwd)

if __name__ == '__main__':
    
    if len(sys.argv) >= 3:
        user = sys.argv[1]
        pwd = sys.argv[2]
        myFunc(user, pwd)

还可以查看argparse单击

然后您可以从 PHP 调用脚本并提供凭据。 实际上有几种方法可以做到这一点。 虽然您的愿望exec不会返回 python 脚本的 output

通路

$output = passthru("python3 myScript.py $user $pwd");

shell_exec

$prog = 'python3 myScript.py '.$user.' '.$pwd;
$output = shell_exec($prog);

执行

exec("python3 myScript.py $user $pwd");  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM