Đầu ra của lệnh exec trong PHP là gì?

echo '

';

// Outputs all the result of shellcommand "ls", and returns
// the last output line into $last_line. Stores the return value
// of the shell command in $retval.
$last_line = system('ls', $retval);

// Printing additional info
echo '



Last line of the output: ' . $last_line . '

Return value: ' . $retval;
?>

Tập lệnh PHP chủ yếu được sử dụng để phát triển các ứng dụng web nhưng nó cũng có thể được sử dụng cho các mục đích khác. PHP có một số chức năng tích hợp để thực thi các lệnh liên quan đến hệ thống. exec() là một trong số đó. Nó được sử dụng để thực thi các lệnh shell hoặc bất kỳ chương trình nào từ tập lệnh PHP. Làm thế nào chức năng này có thể được sử dụng trong PHP được hiển thị trong hướng dẫn này

cú pháp

chuỗi exec ( chuỗi $command [, array &$output [, int &$return_var ]] )

Hàm này có thể nhận ba đối số. Đối số đầu tiên là bắt buộc sẽ nhận lệnh hệ thống. Hai đối số khác là tùy chọn. Đối số thứ hai được sử dụng để lưu trữ đầu ra của lệnh trong một mảng. Đối số thứ ba của hàm này được sử dụng để lưu trữ trạng thái trả về của lệnh đã thực hiện. Hàm này trả về dòng cuối cùng từ đầu ra lệnh đã thực hiện

Ví dụ 1. Sử dụng hàm exec() không có đối số tùy chọn

Cách sử dụng cơ bản của hàm exec() đã được trình bày trong hướng dẫn này. Tạo một tệp PHP với tập lệnh sau để biết cách hàm exec() trả về đầu ra lệnh. Lệnh ' pwd ' đã được sử dụng trong lệnh exec() đầu tiên của tập lệnh trả về một dòng đầu ra. Lệnh ‘ls -la‘ đã được sử dụng trong lệnh exec() thứ hai có thể trả về nhiều dòng kết quả. Nếu bất kỳ lệnh nào trả về nhiều dòng thì đầu ra sẽ hiển thị dòng cuối cùng là đầu ra



// Lưu trữ đầu ra của lệnh đã thực hiện

$output1 =   exec('pwd');

//In giá trị trả về

echo $output1;

echo """""""""""";

//Lưu trữ dòng cuối cùng của lệnh đã thực hiện

$output2 = exec('ls -la);

//In giá trị trả về

echo $output2;

?>

đầu ra

Đầu ra sau sẽ xuất hiện sau khi chạy tập lệnh trên từ máy chủ. Lệnh 'pwd' trả về thư mục làm việc hiện tại dưới dạng đầu ra được hiển thị trong đầu ra đầu tiên. Lệnh ‘ls -la‘ trả về thông tin chi tiết của danh sách các thư mục và đầu ra thứ hai hiển thị dòng cuối cùng từ đầu ra lệnh

Đầu ra của lệnh exec trong PHP là gì?

Ví dụ-2. In tất cả các giá trị của lệnh đã thực hiện

Trong ví dụ trước, không có đối số tùy chọn nào được sử dụng trong hàm exec(). Ví dụ sau đây cho thấy việc sử dụng các đối số tùy chọn của hàm exec(). Tạo một tệp PHP với tập lệnh sau. Hai đối số tùy chọn của exec() được sử dụng trong tập lệnh này. Lệnh ‘ls -l‘ được sử dụng trong đối số đầu tiên trả về danh sách các thư mục. $output biến được sử dụng ở đây để lưu trữ đầu ra của lệnh trong một mảng. Biến trạng thái $ được sử dụng để lưu trữ giá trị trạng thái trả về của lệnh đã thực hiện. Đầu ra của lệnh sẽ được in dưới dạng một mảng và mỗi giá trị của mảng đầu ra sẽ được in bằng cách sử dụng vòng lặp 'for'



// Lưu trữ đầu ra của lệnh đã thực hiện trong một mảng

exec('ls -l', $, $status);


//In tất cả các giá trị trả về của lệnh đã thực hiện dưới dạng mảng

print_r($output);

echo """""""""""""""""";

// In kết quả của lệnh đã thực hiện trong mỗi dòng

foreach($output as $valueas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueas)

{


        echo $value. """""""""""""""""";

}

//In trạng thái trả về của lệnh đã thực hiện

echo $status;

?>

đầu ra

Đầu ra sau sẽ xuất hiện sau khi chạy tập lệnh trên từ máy chủ. Đầu ra hiển thị mảng chứa đầu ra của lệnh, ‘ls -l’ và mỗi giá trị của mảng trong mỗi dòng

Đầu ra của lệnh exec trong PHP là gì?

Ví dụ-3. In tất cả các tệp PHP của thư mục hiện tại

The following example shows the list of all PHP files of the current directory by using the exec() function. Here, the ‘ls -l *.php‘ command is used here to find out the list of all PHP files of the current directory.

 tag is used in the script to print the content of the array with the structured format.



// Lưu trữ đầu ra của lệnh đã thực hiện trong một mảng

exec('ls -l *. php', $đầu ra);

//In kết quả của lệnh đã thực hiện

echo ";

print_r($output);

echo "";

?>

đầu ra

Đầu ra sau sẽ xuất hiện sau khi chạy tập lệnh trên từ máy chủ

Đầu ra của lệnh exec trong PHP là gì?

Ví dụ-4. Chạy tập lệnh bash

Làm thế nào bất kỳ tập lệnh bash nào có thể được thực thi bằng cách sử dụng hàm exec() đã hiển thị trong ví dụ này. Tạo một tệp bash có tên là vòng lặp. sh bằng tập lệnh sau sẽ in tất cả các số chẵn từ 1 đến 20

vòng. sh

#. /bin/bash

#Khởi tạo bộ đếm

bộ đếm =1

# Lặp lại vòng lặp cho đến khi giá trị $count nhỏ hơn hoặc bằng 20

while [ $count - le 20 ]

làm

#In các số chẵn

if [[ $count%2 -eq 0 ]]

sau đó

#Print $count không có dòng mới

echo   " $count "

fi

#Tăng bộ đếm $ lên 1

(( bộ đếm ++))

xong

Tạo một tệp PHP với tập lệnh sau để chạy tập lệnh bash. 'vòng lặp bash. sh‘ được sử dụng làm đối số đầu tiên của hàm exec() sẽ thực thi vòng lặp. tập lệnh sh. Vòng lặp 'foreach' được sử dụng để in từng giá trị của $output có dấu cách



// Chạy tập lệnh bash

exec('bash loop. sh', $đầu ra);


echo "Tất cả các số chẵn trong phạm vi 1-20 là. """""""""""""""""""""""""""""""";


//In đầu ra bằng vòng lặp

foreach($output as $valueas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueasas$valueas)

{


        echo $value. "  ";

}

?>

đầu ra

Đầu ra sau sẽ xuất hiện sau khi chạy tập lệnh trên từ máy chủ. Đầu ra hiển thị tất cả các số chẵn trong khoảng từ 1 đến 20

Đầu ra của lệnh exec trong PHP là gì?

Ví dụ-5. Chạy lệnh `dir` bằng hàm exec()

Lệnh ‘dir’ hoạt động giống như lệnh ‘ls’. Ví dụ sau đây cho thấy cách lệnh 'dir' có thể được thực thi bằng cách sử dụng tập lệnh PHP. Tạo một tệp PHP với tập lệnh sau lưu trữ đầu ra của lệnh 'dir' trong mảng có tên $output và giá trị trạng thái trong biến có tên $return. Hàm var_dump() được sử dụng ở đây để in cấu trúc của mảng $output với thông tin kiểu dữ liệu



    //Chạy lệnh `dir`

    exec("dir", $output, $return);

    //In giá trị trạng thái trả về

    echo "Giá trị trả về của lệnh `dir` là $return\n";

    echo ";

    //In kết quả lệnh

    var_dump($output);

    echo "";

?>

đầu ra

Đầu ra sau sẽ xuất hiện sau khi chạy tập lệnh trên từ máy chủ

Đầu ra của lệnh exec trong PHP là gì?

Phần kết luận

Các cách sử dụng khác nhau của hàm exec() đã được giải thích trong hướng dẫn này để giúp các lập trình viên PHP biết cách thực thi lệnh shell bằng cách sử dụng tập lệnh PHP. Một số chức năng khác cũng tồn tại trong PHP để thực hiện cùng loại tác vụ

Đầu ra của hàm exec() trong PHP là gì?

Hàm exec() là một hàm có sẵn trong PHP, dùng để thực thi một chương trình bên ngoài và trả về dòng cuối cùng của kết quả . Nó cũng trả về NULL nếu không có lệnh nào chạy đúng.

exec dùng để làm gì?

Lệnh exec là công cụ mạnh mẽ để thao tác với bộ mô tả tệp (FD), tạo đầu ra và ghi nhật ký lỗi trong tập lệnh với ít thay đổi . Trong Linux, theo mặc định, bộ mô tả tệp 0 là stdin (đầu vào tiêu chuẩn), 1 là thiết bị xuất chuẩn (đầu ra tiêu chuẩn) và 2 là stderr (lỗi tiêu chuẩn).

Làm cách nào để sử dụng lệnh exec trong PHP?

Trên Windows exec() sẽ khởi động cmd trước. exe để chạy lệnh . Nếu bạn muốn bắt đầu một chương trình bên ngoài mà không cần khởi động cmd. exe sử dụng proc_open() với tùy chọn bypass_shell được thiết lập.

Sự khác biệt giữa exec và shell exec PHP là gì?

shell_exec trả về tất cả luồng đầu ra dưới dạng chuỗi. exec trả về dòng cuối cùng của đầu ra theo mặc định, nhưng có thể cung cấp tất cả đầu ra dưới dạng một mảng được chỉ định làm tham số thứ hai . Lưu câu trả lời này.