【问题标题】:How to pass PHP variable values to Python via shell_exec如何通过 shell_exec 将 PHP 变量值传递给 Python
【发布时间】:2018-08-05 15:11:25
【问题描述】:

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

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

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

上面的代码在我的 Python 脚本中分别产生的不是“doggy”和“kitty”,而是字面上的“$first”和“$second”。我想要小狗和小猫。

例如当我在 Python 中打印时:

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

是我收到的输出。

我的 Python 脚本没有输出任何东西,该脚本与我希望使用这些变量的 API 交互。

我已经尝试过这些以前的帖子,这些帖子似乎接近我的要求。我要么不理解它们,要么它们不工作。有些答案太专业或太模糊。

Passing value from PHP script to Python script

PHP <-> Python variable exchange

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

【问题讨论】:

  • 尝试用双引号替换单引号:$command = escapeshellcmd("python ./script.py $first $second");
  • 使用双引号,而不是单引号
  • @Yamakenji,cdarke。谢谢你。从字面上看是几个小时......

标签: php python mysql


【解决方案1】:

单引号字符串将按字面意思显示,而双引号字符串将解释变量和换行符 (\n) 等内容。

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

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

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

【讨论】:

  • 感谢埃米尔,它成功了。我同时感到非常沮丧和松了一口气。
猜你喜欢
  • 2023-03-09
  • 1970-01-01
  • 2013-05-31
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 2015-04-28
  • 1970-01-01
  • 2021-10-05
相关资源
最近更新 更多