В зависимости от того, что вы делаете, system () или popen () могут быть идеальными. Используйте system (), если скрипт Python не имеет выходных данных или если вы хотите, чтобы выходные данные скрипта Python направлялись непосредственно в браузер. Используйте popen (), если вы хотите записать данные в стандартный ввод скрипта Python или прочитать данные из стандартного вывода скрипта Python в php. popen () позволит вам читать или писать, но не то и другое одновременно. Если вы хотите и того, и другого, попробуйте proc_open () , но при двустороннем взаимодействии между программами вам нужно быть осторожным, чтобы избежать взаимоблокировок, когда каждая программа ждет, пока другая что-то сделает.
Если вы хотите передать данные, предоставленные пользователем, в скрипт Python, тогда следует быть осторожным с внедрением команд. Если вы не будете осторожны, ваш пользователь может отправить вам такие данные, как "; evilcommand;" и заставить вашу программу выполнять произвольные команды против вашей воли.
escapeshellarg () и escapeshellcmd () могут помочь в этом, но лично мне нравится удалять все, что не является заведомо хорошим персонажем, используя что-то вроде
preg_replace('/[^a-zA-Z0-9]/', '', $str)