У меня есть некоторые переменные, определенные в файле 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 не лучший способ для этого, я открыт для новых идей. Любая помощь приветствуется. Спасибо, что нашли время посмотреть мой пост.
Строка с одиночными кавычками будет отображаться буквально, а строка с двойными кавычками будет интерпретировать такие вещи, как переменные и новые линейные последовательности (\n).
Поэтому переходим от одиночных к двойным кавычкам:
$command = escapeshellcmd("python ./script.py $first $second");
Подробнее о строках в руководстве по PHP: http://se1.php.net/manual/en/language.types.string.php
$command = escapeshellcmd("python ./script.py $first $second");