Как передать значения переменных PHP в Python через shell_exec

0

У меня есть некоторые переменные, определенные в файле PHP. Затем я вызываю скрипт python из PHP с этими переменными в качестве аргументов. ОДНАКО значения переменных не переносятся на мой скрипт python, кажется, что они передаются как строки, а не как переменные:

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

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

Вышеприведенный код генерирует не "doggy" и "kitty" соответственно в моем сценарии Python, а буквально "$ first" и "$ second". Я хочу собачку и котенка.

Например, когда я печатаю на Python:

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

это результат, который я получаю.

Мой скрипт Python НЕ выводит ничего, скрипт взаимодействует с API, с которым я хочу использовать эти переменные.

Я пробовал эти предыдущие сообщения, которые, кажется, близки к тому, что я прошу. Я либо не понимаю их, либо они не работают. Некоторые ответы слишком технические или слишком расплывчатые.

Передача значения из скрипта PHP в скрипт Python

PHP <-> Обмен переменными Python

Если shell_exec не лучший способ для этого, я открыт для новых идей. Любая помощь приветствуется. Спасибо, что нашли время посмотреть мой пост.

  • 2
    попробуйте заменить одинарные кавычки на двойные: $command = escapeshellcmd("python ./script.py $first $second");
  • 1
    Используйте двойные кавычки, а не одинарные
Показать ещё 1 комментарий
Теги:

1 ответ

2

Строка с одиночными кавычками будет отображаться буквально, а строка с двойными кавычками будет интерпретировать такие вещи, как переменные и новые линейные последовательности (\n).

Поэтому переходим от одиночных к двойным кавычкам:

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

Подробнее о строках в руководстве по PHP: http://se1.php.net/manual/en/language.types.string.php

  • 0
    Спасибо, Эмиль, это сработало. Я одновременно удивлен и расстроен.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню