1

PHP代码:

<?php
$data = array('1','4','67','34');

$result = shell_exec('C:/Python27/python C:/xampp/htdocs/123.py ' . escapeshellarg(json_encode($data)));

$resultData = json_decode($result, true);

var_dump($resultData);


?>

蟒蛇代码:

import sys, json

# Load the data that PHP sent us
try:
    data = json.loads(sys.argv[1])
except:
    print "ERROR"
    sys.exit(1)

# Generate some data to send to PHP
result = {'23','4'}

# Send it to stdout (to PHP)
print json.dumps(result)
4

2 回答 2

1

在命令后面添加2>&1(stdout & stderr),如下所示:

$result = shell_exec('C:/Python27/python C:/xampp/htdocs/123.py ' . escapeshellarg(json_encode($data)) . ' 2>&1');
于 2014-10-09T13:28:30.680 回答
1

json.dump()Python 中的数据不正确

# Generate some data to send to PHP
result = {'23','4'}

所以这会给出错误,而不是 json 字符串

import sys, json

# Generate some data to send to PHP
result = {'23','4'}

# Send it to stdout (to PHP)
print json.dumps(result)

和 PHP从 Python中获取NULL,因此您可以在屏幕上显示 - 在浏览器中$resultNULL

使用(例如):

# Generate some data to send to PHP
result = {'a':'23','b':'4'}

并且json.dump()会正常工作。

于 2013-07-02T14:45:00.633 回答