Tập lệnh PHP thực thi PHP

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 thi$output1=

//Store the output of the executed command

$output1 =  exec('pwd');

//Print the return value

echo $output1;

echo "
"
;

//Store the last line of the executed command

$output2 = exec('ls -la');

//Print the return value

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

Tập lệnh PHP thực thi PHP

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 thi trong một mảngexec(< . "
"
;}//In trạng thái trả về


//Store the output of the executed command in an array

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


//Print all return values of the executed command as array

print_r($output);

echo "
"
;

//Print the output of the executed command in each line

foreach($output as $value)

{


        echo $value."
"
;

}

//Print the return status of the executed command

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

Tập lệnh PHP thực thi PHP

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 thi trong một mảngexec(< . php',$đầu ra);

//Store the output of the executed command in an array

exec('ls -l *.php', $output);

//Print the output of the executed command

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ủ

Tập lệnh PHP thực thi PHP

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 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

#Iterate the loop until the $counter value is less than or equal to 20

while [ $counter -le 20 ]

do

#Print the even numbers

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

then

#Print $counter without newline

echo  "$counter"

fi

#Increment $counter by 1

((counter++))

done

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 bashexec(,$đầu ra);";//In dữ liệu đầu ra của chúng tôi bằng cách sử dụng vòng lặpforeach . "  ";}?>

//Run the bash script

exec('bash loop.sh', $output);


echo "All even numbers within 1-20 are:
"
;


//Print the ourput using loop

foreach($output as $value)

{


        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

Tập lệnh PHP thực thi PHP

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`   

    //Run `dir` command

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

    //Print the return status value

    echo "The return value of the `dir` command is $return\n";

    echo "

";

    //Print the command output

    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ủ

Tập lệnh PHP thực thi PHP

Sự 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ụ

Làm cách nào bạn có thể thực thi tập lệnh PHP từ dòng lệnh?

Bạn chỉ cần làm theo các bước để chạy chương trình PHP bằng dòng lệnh. .
Mở terminal hoặc cửa sổ dòng lệnh
Chuyển đến thư mục hoặc thư mục được chỉ định chứa các tệp php
Sau đó, chúng ta có thể chạy mã php bằng lệnh sau. tên_tệp php. php

Lệnh thực thi PHP là gì?

Hàm exec() là một hàm sẵn có trong PHP, được dùng để thực thi 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. cú pháp. chuỗi exec( $command, $output, $return_var )

Mã PHP được thực thi ở đâu?

Mã PHP được thực thi trên máy chủ .

Chúng ta có thể sử dụng PHP để viết các tập lệnh dòng lệnh không?

Tập lệnh dòng lệnh đơn giản . Chúng tôi sẽ không sử dụng bất kỳ loại thẻ HTML nào trong tập lệnh dòng lệnh, vì đầu ra sẽ không được hiển thị trong trình duyệt web mà được hiển thị trong dấu nhắc DOS/dấu nhắc Shell. Yes, we can create a command-line PHP script as we do for web script, but with few little tweaks. We won't be using any kind of HTML tags in command-line scripting, as the output is not going to be rendered in a web browser, but displayed in the DOS prompt / Shell prompt.