Читайте php var из Python

Вот мой код, который должен работать согласно ответам на другие подобные вопросы, но это не так.

PHP:

    <?PHP

$par = $_POST["parameter"];
$importPar=exec("py pyData.py . $par"); //also tried shell_exec()
print ($par);
print($importPar);
?>

Python:

import sys
who = sys.argv[1]
print("This is php var: ",who)

Возможно, мне придется что-то делать с моим cmd, потому что ничего не возвращается, даже когда я пытаюсь:

$test=shell_exec('ipconfig');
echo $test;

0

Решение

С небольшими изменениями ваш код работает нормально на моей установке PHP 5.6.3. Единственное существенное отличие в моем примере ниже заключается в том, что $par устанавливается локально, а не из $POST вход.

Незначительные исправления:
1. . не обязательно, когда вы включаете $variable внутри двойных кавычек. Это на самом деле заставит питона думать, что вы хотите напечатать . вместо $par, как . читается как sys.argv[1],
2. Я предполагаю py это псевдоним, но мне нужно было использовать python в exec() бежать правильно.
3. В качестве вывода на печать вы получите кортеж с выражением Python как есть: ('This is php var: ', 'foo')
, Рассмотреть возможность использования .format() вместо этого смотрите ниже.

""" test.py
import sys
who = sys.argv[1]
print('This is php var: {}'.format(who))
"""
<?PHP
$par = "foo";
$importPar=exec("python test.py $par");
print ("$par\n");
print($importPar);
?>

Выход:

foo
This is php var: test.py
Process finished with exit code 0
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector