I am calling a python script from PHP.
The python program has to return some value according to the arguments passed to it.
Here is a sample python program, which will give you a basic idea of what i am doing currently:
#!/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 arg2 = argList #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
As you can see from the above code, my basic aim is
- for the python program to return some values (0,1,4,8 etc) depending on the arguments.
- And then the calling PHP program to access these returned values and do the appropriate operation.
Currently i have used “sys.exit(n)”, for that purpose.
Am i right in using sys.exit, or do I need to use something else?
And also what method exists in PHP so that I can access the return code from python?
Sorry for the long question, but hopefully it will help in you understanding my dilemma
Thanks a ton
In PHP, you can execute a command and obtain the return code using
The manual for
exec says the third parameter is a variable in which the return code will be stored, for example
exec('python blibble.py', $output, $ret_code);
$ret_code will be the shell return code, and
$output is an array of the lines of text printed to std. output.
This does appear to be an appropriate use for a return code from what you described, i.e. 0 indicating success, and >0 being codes for various types of errors.
That is correct use of exit(). See also: http://docs.python.org/library/sys.html