[Php 4, Php 5, Php 7, Php 8]
EXEC - Thực hiện một chương trình bên ngoài — Execute an external program
Sự mô tả
EXEC [Chuỗi $command
, mảng &$output
= null
, int &$result_code
= null
]: Chuỗi | Sai[string $command
, array &$output
= null
, int &$result_code
= null
]:
string|false
Thông số
command
Lệnh sẽ được thực thi.
output
Nếu đối số output
có mặt, thì mảng được chỉ định sẽ được lấp đầy bằng mọi dòng đầu ra từ lệnh. Trailing Whitespace, chẳng hạn như \n
, không được bao gồm trong mảng này. Lưu ý rằng nếu mảng đã chứa một số phần tử, Exec [] sẽ nối vào cuối mảng. Nếu bạn không muốn chức năng nối các phần tử, hãy gọi unset [] trên mảng trước khi chuyển nó sang EXEC [].exec[] will append to the end of the array. If you do not want the function to append elements, call unset[] on the array before passing it to exec[].
$command
0 Nếu đối số $command
0 có mặt cùng với đối số output
, thì trạng thái trả về của lệnh được thực thi sẽ được ghi vào biến này.
Trả về giá trị
Dòng cuối cùng từ kết quả của lệnh. Nếu bạn cần thực thi lệnh và có tất cả dữ liệu từ lệnh được truyền trực tiếp trở lại mà không có bất kỳ nhiễu nào, hãy sử dụng hàm passthru [].passthru[] function.
Trả về $command
3 về thất bại.$command
3 on failure.
Để có được đầu ra của lệnh thực thi, hãy chắc chắn đặt và sử dụng tham số output
.
Errors/Exceptions
Phát ra một $command
5 nếu Exec [] không thể thực thi command
.$command
5 if exec[] is unable to execute the command
.
Ném một giá trịerror nếu command
trống hoặc chứa các byte null.ValueError if command
is empty or contains null bytes.
Thay đổi
8.0.0 | EXEC [Chuỗi $command , mảng &$output = null , int &$result_code = null ]: Chuỗi | Saiexec[] now throws a ValueError. Previously it emitted an $command 5 and returned $command 3.
|
Thông số
command
exec[] example
&$output
1
Lệnh sẽ được thực thi.
Returned with status 0 and output: Array [ [0] => cmb ]
output
Nếu đối số output
có mặt, thì mảng được chỉ định sẽ được lấp đầy bằng mọi dòng đầu ra từ lệnh. Trailing Whitespace, chẳng hạn như \n
, không được bao gồm trong mảng này. Lưu ý rằng nếu mảng đã chứa một số phần tử, Exec [] sẽ nối vào cuối mảng. Nếu bạn không muốn chức năng nối các phần tử, hãy gọi unset [] trên mảng trước khi chuyển nó sang EXEC [].
$command
0escapeshellarg[] or escapeshellcmd[] to ensure that users cannot trick the system into executing arbitrary commands.
Nếu đối số
$command
0 có mặt cùng với đối sốoutput
, thì trạng thái trả về của lệnh được thực thi sẽ được ghi vào biến này.:Trả về giá trị
Nếu đối số
$command
0 có mặt cùng với đối sốoutput
, thì trạng thái trả về của lệnh được thực thi sẽ được ghi vào biến này.:Trả về giá trịexec[] will first start cmd.exe to launch the command. If you want to start an external program without starting cmd.exe use proc_open[] with the
&$output
2 option set.
Dòng cuối cùng từ kết quả của lệnh. Nếu bạn cần thực thi lệnh và có tất cả dữ liệu từ lệnh được truyền trực tiếp trở lại mà không có bất kỳ nhiễu nào, hãy sử dụng hàm passthru [].
- Trả về
$command
3 về thất bại. - Để có được đầu ra của lệnh thực thi, hãy chắc chắn đặt và sử dụng tham số
output
. - Phát ra một
$command
5 nếu Exec [] không thể thực thicommand
. - Ném một giá trịerror nếu
command
trống hoặc chứa các byte null. - Thay đổi
Phiên bản ¶
Nếu command
trống hoặc chứa các byte null, exec [] bây giờ ném một giá trịerror. Trước đây, nó phát ra một $command
5 và trả lại $command
3.
&$output
3
&$output
4
&$output
5Ví dụ ¶
Ví dụ #1 ví dụ exec []
&$output
6
&$output
7
&$output
8
&$output
9
null
0
null
1
null
2Ví dụ trên sẽ xuất ra một cái gì đó tương tự như: ¶
Ghi chú
null
3
null
4
null
5
null
6
&$output
5Cảnh báo ¶
Khi cho phép dữ liệu do người dùng cung cấp được truyền vào chức năng này, hãy sử dụng escapeshellarg [] hoặc escapeshellcmd [] để đảm bảo rằng người dùng không thể lừa hệ thống để thực hiện các lệnh tùy ý.
null
8
null
9
&$result_code
0
&$output
5Ghi chú: ¶
Nếu một chương trình được bắt đầu với chức năng này, để nó tiếp tục chạy ở chế độ nền, đầu ra của chương trình phải được chuyển hướng đến một tệp hoặc luồng đầu ra khác. Không làm như vậy sẽ khiến PHP bị treo cho đến khi việc thực hiện chương trình kết thúc.
&$result_code
2
&$result_code
3
&$result_code
4
&$output
5 Trên Windows Exec [] trước tiên sẽ bắt đầu cmd.exe để khởi 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 bắt đầu cmd.exe sử dụng Proc_open [] với tùy chọn &$output
2. ¶
Nếu một chương trình được bắt đầu với chức năng này, để nó tiếp tục chạy ở chế độ nền, đầu ra của chương trình phải được chuyển hướng đến một tệp hoặc luồng đầu ra khác. Không làm như vậy sẽ khiến PHP bị treo cho đến khi việc thực hiện chương trình kết thúc.
&$result_code
6
Trên Windows Exec [] trước tiên sẽ bắt đầu cmd.exe để khởi 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 bắt đầu cmd.exe sử dụng Proc_open [] với tùy chọn &$output
2. ¶
Xem thêm
&$result_code
7
&$result_code
8
&$result_code
9
&$output
5System [] - Thực hiện chương trình bên ngoài và hiển thị đầu ra ¶
passthru [] - thực hiện một chương trình bên ngoài và hiển thị đầu ra thô
null
1
null
2
&$output
5Escapeshellcmd [] - Escape Shell Metacharacters ¶
pcntl_exec [] - thực thi chương trình được chỉ định trong không gian quy trình hiện tại
null
4
null
5
null
6
null
7
null
8
&$output
5
toán tử backtick ¶
Arno van den Brink ¶
command
0
command
1
command
2
command
3
command
4
&$output
514 năm trước ¶
passthru [] - thực hiện một chương trình bên ngoài và hiển thị đầu ra thô
command
6
command
7
command
8
command
9
&$output
5Escapeshellcmd [] - Escape Shell Metacharacters ¶
pcntl_exec [] - thực thi chương trình được chỉ định trong không gian quy trình hiện tại
output
1
output
2
output
3
Arno van den Brink ¶ ¶
14 năm trước
output
5
output
6
output
7
output
8
output
9
output
0
&$output
5dell_petter tại hotmail dot com ¶
14 năm trước
output
2
output
3
output
4
output
5
output
6
output
7
&$output
5dell_petter tại hotmail dot com ¶
13 năm trước
output
9
\n
0
&$output
5Simon ¶ ¶
14 năm trước
\n
2
\n
3
\n
4
\n
5
\n
6
\n
7
\n
8
\n
9
&$output
5dell_petter tại hotmail dot com ¶
13 năm trước
$command
01
$command
02
&$output
5Simon ¶ ¶
Ví dụ #1 ví dụ exec []
$command
04
$command
05
$command
06
$command
07Ví dụ trên sẽ xuất ra một cái gì đó tương tự như: ¶
Nếu command
trống hoặc chứa các byte null, exec [] bây giờ ném một giá trịerror. Trước đây, nó phát ra một $command
5 và trả lại $command
3.
$command
08
$command
09
$command
10
$command
11
&$output
5