Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Cách thực thi PHP từ Dòng lệnh (Bash / Shell)

Bài viết này sẽ nhanh chóng trình bày về các cách PHP có thể được sử dụng từ trình bao / dòng lệnh Bash, với các ví dụ.

PHP thường được sử dụng để tạo nội dung được cung cấp trên web - nhưng nó cũng có thể được sử dụng từ dòng lệnh.

Điều này thường được thực hiện với mục đích kiểm tra hoặc tìm hiểu thông tin về môi trường PHP - nhưng PHP cũng có thể được sử dụng để viết các tập lệnh dòng lệnh ( tuy nhiên, một lần nữa, nó không thực sự được thực hiện thường xuyên - có lẽ vì có nhiều hơn lựa chọn thay thế ).

Thực thi Lệnh PHP Trực tiếp từ Shell

Các lệnh PHP có thể được thực thi trực tiếp từ dòng lệnh với -r (chạy) tùy chọn:

php -r 'phpinfo();'

Ở trên, phpinfo () hàm được gọi. Nhiều dòng mã có thể được phân tách bằng dấu chấm phẩy hoặc heredoc (biến Bash nhiều dòng) có thể được nhập vào.

Tham số / Đối số

Tham số / Đối số có thể được chuyển tới PHP bằng cách sử dụng $ argv , khả dụng khi PHP được thực thi từ dòng lệnh.

php -r 'echo $argv[1]; echo $argv[2];' "foo" "bar"

Ở trên, tham số đầu tiên được truy cập bằng $ argv [1] và tham số thứ hai sử dụng $ argv [2] .

$ argv là một mảng sẽ chỉ có thể truy cập được nếu PHP được gọi từ dòng lệnh. Mục đầu tiên trong mảng sẽ là tên của tệp thực thi PHP được gọi để thực thi tập lệnh và các mục sau trong mảng sẽ là các tham số được truyền theo thứ tự xuất hiện.

Thực thi tệp tập lệnh

Các tệp PHP có thể được thực thi từ dòng lệnh bằng cách cung cấp đường dẫn đến tệp:

php script.php

hoặc

php -f script.php

-f tùy chọn không bắt buộc nhưng có thể được chỉ định cho rõ ràng.

Bạn có thể tìm thấy danh sách đầy đủ các tùy chọn dòng lệnh PHP tại đây.

Tham số / Đối số

Như khi thực thi PHP trực tiếp từ dòng lệnh, các tham số có thể được truy cập bằng cách sử dụng $ argv mảng khi chạy các tập lệnh từ dòng lệnh theo cách tương tự.

Kiểm tra xem có chạy từ dòng lệnh không

Thích $ argv , $ argc chỉ hiện diện khi chạy từ dòng lệnh. Nó chứa số lượng tham số / đối số được truyền cho tập lệnh.

Nếu nó hiện diện, bạn đang chạy trên dòng lệnh!

if (isset($argc)) {
    // PHP was called from the command line 
}

STDIN / STDOUT và PHP

Chuyển hướng tiêu chuẩn có thể được sử dụng để cung cấp các lệnh và xử lý dữ liệu từ PHP như bạn làm với bất kỳ ứng dụng dòng lệnh nào khác.

echo 'Green trees' | php -r 'echo file_get_contents("php://stdin");'

Ở trên, văn bản ‘Green tree’ được chuyển sang PHP, sau đó sẽ đọc các tệp STDIN và lặp lại nó.