Веб-сервер Python с PHP-кодом? [Дубликат]

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

23
задан TheCodeArtist 19 April 2015 в 17:20
поделиться

5 ответов

Пример кода:

import subprocess

# if the script don't need output.
subprocess.call("php /path/to/your/script.php")

# if you want output
proc = subprocess.Popen("php /path/to/your/script.php", shell=True, stdout=subprocess.PIPE)
script_response = proc.stdout.read()
35
ответ дан xdazz 19 August 2018 в 19:28
поделиться
  • 1
    Это код, вставленный из mail.python.org/pipermail/tutor/2009-October/071973.html – Alvin 29 July 2012 в 20:22
  • 2
    это неверно. Первый вызов не будет работать в системах POSIX. Вместо этого используйте subprocess.call(["php", "/path/to/your/script.php"]). Вместо второго примера используйте script_response = subprocess.check_output(["php", "/path/to/your/script.php"]). – jfs 29 October 2014 в 17:34
  • 3
    если для параметра shell установлено значение True, то использование строки, а не списка, в порядке – Valen 22 July 2017 в 07:06
  • 4
    – Akshay Lokur 23 October 2018 в 05:39

Вы можете просто выполнить исполняемый файл php с Python.

Изменить: пример для Python 3.5 и выше с помощью subprocess.run :

import subprocess

result = subprocess.run(
    ['php', 'image.php'],    # program and arguments
    stdout=subprocess.PIPE,  # capture stdout
    check=True               # raise exception if program fails
)
print(result.stdout)         # result.stdout contains a byte-string
11
ответ дан Sjoerd 19 August 2018 в 19:28
поделиться
  • 1
    Не могли бы вы разместить любой пример? – jiahao 24 January 2012 в 11:21
  • 2
  • 3
    Предполагая, что скрипт php можно вызвать из командной строки и принять аргумент командной строки, чтобы описать, что делать с изображением, вы можете использовать встроенный пакет подпроцесса. подпроцесс подпроцесса импорта ([& quot; / path / to / php & quot ;, & quot; /path/to/php/script.php" ;, & quot; аргумент & quot;]) – Rob Young 24 January 2012 в 11:26
  • 4
    Отправьте пример – tumbleweed 6 March 2017 в 16:01

Создайте обертку вокруг скрипта PHP, который:

  • выполняет материал (если я хорошо понимаю, это создание образа),
  • затем перенаправляет ( 301 Перемещено на постоянное ) к результирующему изображению,
  • (также изображение должно быть очищено когда-нибудь).

Таким образом, вы можете обратиться к этому service (скрипт PHP) с простым HTTP-запросом, откуда угодно, вы можете протестировать его с помощью браузера, использовать с Python prg, вам нужно просто загрузить изображение обычным способом.

Кроме того, если у вас есть такая автономная подсистема, не чувствуйте себя плохо в ее реализации с помощью другого языка / техники. Он имеет несколько преимуществ, например. вы можете установить эту службу на другом хосте.

Рекомендуемое чтение: Сервисно-ориентированная архитектура в Википедии.

3
ответ дан ern0 19 August 2018 в 19:28
поделиться
  • 1
    Это действительно хорошая идея! Думаю, это может решить мою проблему. Большое спасибо. – jiahao 24 January 2012 в 11:30

Если вы можете запустить PHP-скрипт локально из командной строки, subprocess.check_output () позволит вам PHP и захватить возвращаемое значение.

Если вы обращаются к PHP через сокет, тогда вы можете использовать urllib.urlopen () или urllib.urlretrieve () , чтобы вытащить ресурс.

3
ответ дан Raymond Hettinger 19 August 2018 в 19:28
поделиться

Вы можете использовать php.py . Это позволит вам выполнить php-код в python, как в этом примере (взято из здесь ):

php = PHP("require '../code/private/common.php';")
code = """for ($i = 1; $i <= 10; $i++) { echo "$i\n"; }"""
print php.get_raw(code)
5
ответ дан Wesley 19 August 2018 в 19:28
поделиться
  • 1
    Здравствуй. Спасибо за вашу помощь. Если вы проверите исходный код этой программы, вы увидите, что мне нужно ввести PHP-код вручную. Поскольку он также связан с некоторыми .inc файлами, это не очень хороший вариант. Но все равно спасибо. – jiahao 24 January 2012 в 12:32
Другие вопросы по тегам:

Похожие вопросы: