2012-02-26 40 views
10

Tôi đang cố gắng sử dụng hàm exec() PHP.Giá trị trả về PHP exec() là gì?

Nếu đối số return_var có mặt cùng với các tham số đầu ra, sau đó tình trạng trở lại của lệnh thực hiện sẽ được ghi vào biến này.

Nếu quá trình thực hiện thành công, đó là 0. Tuy nhiên, nếu có lỗi, có thể là vô số các số nguyên khác. Tôi không thể tìm thấy bất cứ nơi nào những gì các số nguyên tương ứng với. Tôi nên giải thích số nguyên mà tôi nhận được như thế nào?

Cập nhật:

tôi thực sự nên đã xác định này ban đầu, nhưng tôi thực hiện một kịch bản PHP. Không giống như rsync, trong đó có các giá trị thoát trên trang con người của nó, tôi không thể tìm thấy một tương đương cho PHP.

Vì vậy, những gì tôi đang làm là một cái gì đó như:

$rv = exec('php file.php', $out, $rv); 

Trả lời

10

Giá trị trả lại phụ thuộc vào quy trình/chương trình mà bạn đã chạy với exec. Ví dụ: nếu bạn chạy grep:

Trạng thái thoát là 0 nếu tìm thấy các dòng được chọn và 1 nếu không được tìm thấy . Nếu một lỗi xảy ra tình trạng thoát là 2. (Lưu ý: POSIX mã lỗi xử lý nên kiểm tra cho '2' hoặc lớn hơn.)

rsync có khoảng 20 mã lối ra lỗi khác nhau, tất cả các giải thích cẩn thận trong man page :

http://linux.die.net/man/1/rsync

nên có, đó là chương trình phụ thuộc vào :)

Thậm chí nếu bạn đang chạy PHP script, giá trị xuất cảnh phụ thuộc vào chương trình của bạn riêng của mình. Theo mặc định script php sẽ thoát ra với 0. Nếu bạn sử dụng chức năng thoát, bạn có thể quay trở lại mã lối ra khác nhau:

http://php.net/manual/en/function.exit.php

Nếu bạn muốn xác định bằng thực nghiệm những gì php chương trình thoát, hãy gọi nó trên dòng lệnh:

php file.php 

sau đó làm

echo $? 

này sẽ cho bạn thấy giá trị xuất cảnh của kịch bản php của bạn.

+0

Vâng, tôi nên xác định rằng ban đầu. Tôi đang thực hiện một kịch bản PHP khác. – burger

0

Tra cứu trang hướng dẫn cho các lệnh mà bạn đang thực hiện. Giá trị này không liên quan gì đến PHP nhưng lệnh thực tế.

+2

bạn có? trang hướng dẫn cho 'php' không có phần RETURN VALUE. – qdii

2

IMHO, trước khi sử dụng exec() chức năng thiết lập đầu ra tốt hơn và tham số return_var và đọc trả về mã thực thi bởi return_var. Không dựa vào giá trị trả về exec().

Các vấn đề liên quan