Trong PHP, exec()
, system()
, và passthru()
là ba hàm được sử dụng để thực thi các lệnh hệ thống từ mã PHP. Tuy nhiên, chúng có những cách hoạt động và mục đích khác nhau. Dưới đây là sự khác biệt giữa chúng:
exec()
Ví dụ:
$output = [];
$return_var = 0;
exec('ls -l', $output, $return_var);
echo "Mã trạng thái: $return_varn";
echo "Kết quả:n" . implode("n", $output);
system()
Ví dụ:
$return_var = 0;
$result = system('ls -l', $return_var);
echo "Mã trạng thái: $return_varn";
passthru()
Ví dụ:
$return_var = 0;
passthru('ls -l', $return_var);
echo "Mã trạng thái: $return_varn";
Hàm | Đầu ra | Giá trị trả về | Sử dụng tốt nhất |
---|---|---|---|
exec() | Lưu vào biến | Mã trạng thái | Khi cần lấy kết quả mà không cần in ngay lập tức |
system() | In ra màn hình | Mã trạng thái | Khi muốn hiển thị đầu ra ngay lập tức |
passthru() | In ra màn hình | Mã trạng thái | Khi hiển thị đầu ra nhị phân hoặc phức tạp |
Mỗi hàm có ưu điểm và cách sử dụng riêng. Việc lựa chọn hàm nào phụ thuộc vào nhu cầu của bạn trong việc xử lý và hiển thị đầu ra từ lệnh hệ thống.