Según lo que esté haciendo, system() o popen() pueden ser perfectos. Use system() si el script de Python no tiene salida, o si desea que el resultado del script de Python vaya directamente al navegador. Utilice popen() si desea escribir datos en la entrada estándar de la secuencia de comandos de Python o leer datos de la salida estándar de la secuencia de comandos de Python en php. popen() solo le permitirá leer o escribir, pero no ambos. Si desea ambas, consulte proc_open(), pero con la comunicación bidireccional entre programas, debe tener cuidado para evitar interbloqueos, donde cada programa espera que el otro haga algo.
Si desea pasar los datos proporcionados por el usuario a la secuencia de comandos de Python, lo más importante a tener en cuenta es la inyección de comandos. Si no tiene cuidado, su usuario podría enviarle datos como "; evilcommand;" y haz que tu programa ejecute comandos arbitrarios contra tu voluntad.
escapeshellarg() y escapeshellcmd() puede ayudar con esto, pero personalmente me gustaría eliminar todo lo que no es un buen personaje conocido, usando algo como
preg_replace('/[^a-zA-Z0-9]/', '', $str)
¡Muchas gracias! Eso fue muy completo –
El módulo de subproceso ha reemplazado usando os.Popen [n] directamente. Deberías usar eso en su lugar. –
@ Nick Stinemates: Estamos hablando de funciones PHP;) – Glaslos