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[1]
arg2 = argList[2]
#Check arguments. Exit with the appropriate value.
if len(arg1) > 255:
#Exit with a value of 4.
开发者_JS百科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 exec
.
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
精彩评论