如何通过shell_exec将PHP变量值传递给Python

时间:2018-02-26 07:58:39

标签: php python mysql

我在PHP文件中定义了一些变量。然后我使用这些变量作为参数从PHP调用python脚本。 HOWEVER 变量的值不会延续到我的python脚本,似乎它们作为字符串而不是作为变量传递:

$first = "doggy";
$second = "kitty";

$command = escapeshellcmd('python ./script.py $first $second');
$output = shell_exec($command);

以上代码不产生"狗狗"和" kitty"分别在我的Python脚本中,但字面意思是" $ first"和" $ second"。我想要小狗和猫咪。

例如,当我在Python中打印时:

print sys.argv[1];
>>$first

是我收到的输出。

我的Python脚本没有输出任何内容,脚本与我希望使用这些变量的API进行交互。

我曾尝试过这些以前的帖子,这些帖子似乎接近我的要求。我要么不理解他们,要么他们不工作。有些答案太技术性或太模糊。

Passing value from PHP script to Python script

PHP <-> Python variable exchange

如果shell_exec不是最好的方式,我愿意接受新的想法。任何和所有的帮助表示赞赏。感谢您抽出宝贵时间查看我的帖子。

1 个答案:

答案 0 :(得分:2)

单引号字符串将按字面显示,而双引号字符串将解释变量和新行序列(\ n)之类的内容。

因此,从单引号改为双引号:

$command = escapeshellcmd("python ./script.py $first $second");

阅读PHP手册中有关字符串的更多信息:http://se1.php.net/manual/en/language.types.string.php