Các hệ thống () Chức năng
Hàm hệ thống trong PHP lấy một đối số chuỗi với lệnh để thực thi cũng như bất kỳ đối số nào bạn muốn truyền cho lệnh đó. Hàm này thực thi lệnh được chỉ định và đưa bất kỳ văn bản kết quả nào vào luồng đầu ra (đầu ra HTTP trong tình huống máy chủ web hoặc bàn điều khiển nếu bạn đang chạy PHP dưới dạng công cụ dòng lệnh). Sự trở lại của chức năng này là dòng đầu ra cuối cùng từ chương trình, nếu nó phát ra đầu ra văn bản.
Các exec () Chức năng
Chức năng hệ thống khá hữu ích và mạnh mẽ, nhưng một trong những vấn đề lớn nhất với nó là tất cả văn bản kết quả từ chương trình đi trực tiếp vào luồng đầu ra. Sẽ có những tình huống mà bạn có thể muốn định dạng văn bản kết quả và hiển thị nó theo một cách khác hoặc hoàn toàn không hiển thị nó.
Đối với điều này, hàm exec trong PHP hoàn toàn thích nghi. Thay vì tự động đổ tất cả văn bản được tạo bởi chương trình đang được thực thi vào luồng đầu ra, nó cho bạn cơ hội để đặt văn bản này trong một mảng được trả về trong tham số thứ hai cho hàm:
Các shell_exec () Chức năng
Hầu hết các chương trình chúng tôi đã thực hiện cho đến nay, ít nhiều, là các chương trình thực tế1. Tuy nhiên, môi trường mà người dùng Windows và Unix hoạt động thực sự phong phú hơn nhiều so với điều này. Người dùng Windows có tùy chọn sử dụng chương trình Windows Command Prompt, cmd.exe Chương trình này được gọi là shell lệnh.
Các passthru () Chức năng
Một hàm hấp dẫn mà PHP cung cấp tương tự như các hàm mà chúng ta đã thấy cho đến nay là hàm passthru. Hàm này, giống như các hàm khác, thực thi chương trình mà bạn nói với nó. Tuy nhiên, sau đó nó tiến hành gửi ngay đầu ra thô từ chương trình này đến luồng đầu ra mà PHP hiện đang hoạt động (tức là HTTP trong kịch bản máy chủ web hoặc shell trong phiên bản dòng lệnh của PHP).
Các proc_open () Chức năng và popen ()
chức năng
Proc_open () tương tự như popen () nhưng cung cấp mức độ kiểm soát lớn hơn nhiều đối với việc thực hiện chương trình. cmd là lệnh được thực thi bởi shell. descriptorspec là một mảng được lập chỉ mục trong đó khóa đại diện cho số mô tả và giá trị đại diện cho cách PHP sẽ chuyển mô tả đó cho tiến trình con. các đường ống sẽ được đặt thành một mảng các con trỏ tệp được lập chỉ mục tương ứng với phần cuối của bất kỳ đường ống nào được tạo. Giá trị trả về là một tài nguyên đại diện cho quá trình; bạn nên giải phóng nó bằng cách sử dụng Proc_close () khi bạn kết thúc với nó.
proc_open()
vàpopen()
, cả hai đều cho phép mức độ kiểm soát cao hơn đối với quá trình sinh sản.