我在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不是最好的方式,我愿意接受新的想法。任何和所有的帮助表示赞赏。感谢您抽出宝贵时间查看我的帖子。
答案 0 :(得分:2)
单引号字符串将按字面显示,而双引号字符串将解释变量和新行序列(\ n)之类的内容。
因此,从单引号改为双引号:
$command = escapeshellcmd("python ./script.py $first $second");
阅读PHP手册中有关字符串的更多信息:http://se1.php.net/manual/en/language.types.string.php