Llamo a un script de python desde PHP.Llamar a Python desde PHP y obtener el código de retorno
El programa python debe devolver algún valor de acuerdo con los argumentos que se le pasen.
Aquí es un ejemplo de programa pitón, que le dará una idea básica de lo que estoy haciendo actualmente:
#!/usr/bin/python
import sys
#get the arguments passed
argList = sys.argv
#Not enough arguments. Exit with a value of 1.
if len(argList) < 3:
#Return with a value of 1.
sys.exit(1)
arg1 = argList[1]
arg2 = argList[2]
#Check arguments. Exit with the appropriate value.
if len(arg1) > 255:
#Exit with a value of 4.
sys.exit(4)
if len(arg2) < 2:
#Exit with a value of 8.
sys.exit(8)
#Do further coding using the arguments------
#If program works successfully, exit with a value of 0
Como se puede ver en el código anterior, mi objetivo básico es
- para que el programa python devuelva algunos valores (0,1,4,8 etc.) según los argumentos.
- Y luego, el programa PHP que realiza la llamada para acceder a estos valores devueltos y hacer la operación apropiada.
Actualmente he utilizado "sys.exit (n)", para tal fin.
¿Estoy en lo correcto al usar sys.exit, o necesito usar algo más?
¿Y también qué método existe en PHP para que pueda acceder al código de retorno de python?
Lo siento por la pregunta larga, pero es de esperar que le ayudará en la comprensión de que mi dilema
Gracias por tonelada
Muchas gracias por la función PHP (exec) para obtener los valores devueltos. Pero, también necesito confirmación en sys.exit (n). ¿Se devolverá el valor (n) a "$ ret_code"? ¿O debería usar otra forma de regresar y salir del programa Python? Gracias de nuevo – seaboy
Simplemente, confirmó que sys.exit (n) devuelve el valor al shell. En Linux, se puede generar con "echo $?". En Windows: "echo% ERRORLEVEL%". No se pudo confirmar su valor en "$ ret_code", pero resolvió la parte python de mi problema. Gracias de nuevo – seaboy
Sí, el valor de sys.exit debe almacenarse en el parámetro de código de retorno mediante el comando PHP exec. No sé cómo llamar a Python, pero lo uso para esto con Java y otros comandos que invoco a través de este método. – JAL