Это ArrayList
из Integer
. Этот ArrayList
не может содержать символ типа '['
. Но вы можете удалить из него Integer
так:
error.remove(3);
В зависимости от того, что Вы делаете, система () или , popen () может быть прекрасным. Используйте систему (), если сценарий Python не имеет никакого вывода, или если Вы хотите, чтобы вывод сценария Python перешел непосредственно к браузеру. Используйте popen (), если Вы захотите записать данные во вход стандарта сценария Python или считать данные со стандартного вывода сценария Python в php. popen (), то только позволит Вам читать или запишет, но не оба. Если Вы хотите обоих, проверяете proc_open () , но с двусторонней связью между программами необходимо стараться избежать мертвых блокировок, где каждая программа ожидает другого, чтобы сделать что-то.
, Если Вы хотите передать пользователя, снабдил данными к сценарию Python, тогда большой вещью быть осторожным относительно является инжекция команды. Если Вы не осторожны, Ваш пользователь мог бы отправить Вам данные как"; evilcommand"; и заставьте свою программу выполнить произвольные команды против Вашей воли.
escapeshellarg () и , которому escapeshellcmd () может помочь с этим, но лично мне нравится удалять все, что не является известным хорошим символом, с помощью чего-то как
preg_replace('/[^a-zA-Z0-9]/', '', $str)
Существует также расширение PHP: Pip - Python в PHP, который я никогда не пробовал, но отмечал его для просто такого случая
Я делаю такого рода вещь все время для быстрых-и-грязных сценариев. Довольно распространено иметь CGI или Сценарий PHP, который просто использует system/popen для вызова некоторой внешней программы.
Просто быть дополнителен осторожный, если Ваш веб-сервер открыт для Интернета в целом. Обязательно санируйте Ваш СТАНОВЯЩИЙСЯ/POST введенными в этом случае, чтобы не позволить взломщикам выполнять произвольные команды на Вашей машине.