gpt4 book ai didi

php - python调用命令问题

转载 作者:太空宇宙 更新时间:2023-11-03 16:55:46 24 4
gpt4 key购买 nike

我对 python 脚本有一个小问题,该脚本从某个 Web 套接字获取数据,获取 Json 值,结果使用 os.system 发送到 php 脚本,如下所示:

os.system('echo \' '+ result +' \' |  php sort.php')

但是结果被回显并且没有通过管道传送到php脚本

出于调试目的,php 脚本仅执行此操作:

$input = readfile("php://stdin");
$data = json_decode($input, true);
var_dump($data['input']);

知道问题出在哪里吗?

PS:结果是一个纯 json 字符串,如下所示:

{
"error_code": 250,
"user": {
"id": "1",
"login": "Talus",
"password": "",
"email": "",
"display_name": ""
},
"session": {
"id": "6",
"user_owner": "1",
"token": "3MJ9G53U3292DA4217ECCC201CE06D0B0AB0B5941580BA54",
"last_activity": "2016-02-16 11:59:02",
"in_game": "0"
}
}

最佳答案

试试这个:

import subprocess

proc = subprocess.Popen(['php', '/path/to/sort.php', result],
stdout=subprocess.PIPE,
shell=True,
stdout=subprocess.PIPE)

script_response = proc.stdout.read()
<小时/>

更新

这是一个替代解决方案..

用你的 python 脚本试试这个:

subprocess.call(['php', '-f', '/path/to/sort.php', result])

然后像这样更新您的 PHP 脚本:

// Only execute via php-cli
if (php_sapi_name() == 'cli')
{
if ($argc > 1)
{
// We use the index 1, because 0 == sort.php
$result = json_decode($argv[1]);

print_r($result);
}
else
{
exit('Invalid request @ '. basename(__FILE__) .':'. __LINE__);
}
}
else
{
exit('Invalid request @ '. basename(__FILE__) .':'. __LINE__);
}

关于php - python调用命令问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35430578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com