Tôi đang gọi một tập lệnh python từ PHP.Gọi Python từ PHP và lấy mã trả lại
Chương trình python phải trả lại một số giá trị theo các đối số được truyền cho nó.
Dưới đây là một chương trình mẫu trăn, mà sẽ cung cấp cho bạn một ý tưởng cơ bản của những gì tôi hiện đang thực hiện:
#!/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
Như bạn có thể nhìn thấy từ đoạn mã trên, mục tiêu cơ bản của tôi là
- cho chương trình python trả lại một số giá trị (0,1,4,8 vv) tùy thuộc vào các đối số.
- Và sau đó gọi chương trình PHP để truy cập các giá trị trả lại này và thực hiện thao tác thích hợp.
Hiện tại tôi đã sử dụng "sys.exit (n)", cho mục đích đó.
Tôi có đang sử dụng sys.exit hay tôi cần sử dụng cái gì khác?
Và phương pháp nào tồn tại trong PHP để tôi có thể truy cập mã trả về từ python?
Xin lỗi cho câu hỏi dài, nhưng hy vọng nó sẽ giúp bạn hiểu được tình trạng khó xử của tôi
Nhờ một tấn
Cảm ơn rất nhiều về hàm PHP (exec) để nhận các giá trị trả lại. Nhưng, tôi cũng cần xác nhận trên sys.exit (n). Giá trị (n) có được trả về "$ ret_code" không? Hoặc tôi nên sử dụng một cách khác để trở về và thoát khỏi chương trình python? Cảm ơn lần nữa – seaboy
Chỉ cần xác nhận rằng sys.exit (n) trả về giá trị cho trình bao. Trong linux, nó có thể được xuất ra bởi "echo $?". Trong khi ở Windows: "echo% ERRORLEVEL%". Không thể xác nhận giá trị của nó trong "$ ret_code", nhưng nó đã giải quyết được phần trăn của vấn đề của tôi. Cảm ơn một lần nữa – seaboy
Có, giá trị sys.exit phải được lưu trữ trong tham số mã trả về bằng lệnh exec của PHP. Tôi không biết về việc gọi Python, nhưng tôi sử dụng nó với Java và các lệnh khác mà tôi gọi thông qua phương thức này. – JAL