Вызов Python в PHP

Это ArrayList из Integer. Этот ArrayList не может содержать символ типа '['. Но вы можете удалить из него Integer так:

error.remove(3);
75
задан Benny Wong 3 October 2008 в 13:44
поделиться

3 ответа

В зависимости от того, что Вы делаете, система () или , popen () может быть прекрасным. Используйте систему (), если сценарий Python не имеет никакого вывода, или если Вы хотите, чтобы вывод сценария Python перешел непосредственно к браузеру. Используйте popen (), если Вы захотите записать данные во вход стандарта сценария Python или считать данные со стандартного вывода сценария Python в php. popen (), то только позволит Вам читать или запишет, но не оба. Если Вы хотите обоих, проверяете proc_open () , но с двусторонней связью между программами необходимо стараться избежать мертвых блокировок, где каждая программа ожидает другого, чтобы сделать что-то.

, Если Вы хотите передать пользователя, снабдил данными к сценарию Python, тогда большой вещью быть осторожным относительно является инжекция команды. Если Вы не осторожны, Ваш пользователь мог бы отправить Вам данные как"; evilcommand"; и заставьте свою программу выполнить произвольные команды против Вашей воли.

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

preg_replace('/[^a-zA-Z0-9]/', '', $str)
101
ответ дан David Xia 7 November 2019 в 07:15
поделиться

Существует также расширение PHP: Pip - Python в PHP, который я никогда не пробовал, но отмечал его для просто такого случая

15
ответ дан enobrev 7 November 2019 в 07:15
поделиться

Я делаю такого рода вещь все время для быстрых-и-грязных сценариев. Довольно распространено иметь CGI или Сценарий PHP, который просто использует system/popen для вызова некоторой внешней программы.

Просто быть дополнителен осторожный, если Ваш веб-сервер открыт для Интернета в целом. Обязательно санируйте Ваш СТАНОВЯЩИЙСЯ/POST введенными в этом случае, чтобы не позволить взломщикам выполнять произвольные команды на Вашей машине.

7
ответ дан Eli Courtwright 7 November 2019 в 07:15
поделиться
Другие вопросы по тегам:

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