Lệnh chạy PHP

Bài đăng này thảo luận về cách thực thi các lệnh shell thông qua PHP. Khả năng thực thi các lệnh shell là một tính năng mạnh mẽ và nên được sử dụng cẩn thận. Như vậy, không phải tất cả các nhà cung cấp dịch vụ lưu trữ sẽ cho phép bạn thực thi các lệnh shell

Bạn có biết rằng bạn có thể vô hiệu hóa các hàm PHP trong tệp php. ini bằng cách sử dụng lệnh? . "Lỗi nghiêm trọng. Lỗi chưa xử lý. Gọi hàm không xác định shell_exec()”

Các hàm PHP để thực thi lệnh shell là. shell_exec(),  exec() hoặc system(). Các chức năng này tương tự nhau đáng kể nhưng có sự khác biệt nhỏ. Hãy cùng xem

Mục lục

shell_exec(). chuỗi

Hàm shell_exec() trả về một chuỗi hoặc giá trị NULL. Chuỗi trả về sẽ chứa đầu ra của lệnh mà bạn đã thực hiện. Tuy nhiên, hàm shell_exec() sẽ trả về NULL nếu xảy ra lỗi. Bạn cũng có thể mong đợi một giá trị NULL nếu lệnh không tạo ra kết quả

Lệnh này yêu cầu các tham số sau

  • $cmd – Yêu cầu một giá trị chuỗi chứa lệnh mà bạn muốn thực thi
Tiếp theo, hãy xem cách bạn có thể sử dụng hàm shell_exec() để trả về danh sách thư mục của máy Linux

Điều này sẽ xuất ra như sau

total 2097248 drwxr-xr-x 2 root root 4096 Apr 26 19:07 opt drwxr-xr-x 2 root root 4096 Apr 26 19:07 media drwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64 lrwxrwxrwx 1 root root ….

exec(chuỗi $cmd, mảng &$đầu ra = null, int &$resultCode = null). chuỗi. sai

Hàm exec() trả về dòng cuối cùng của lệnh đã thực hiện dưới dạng một chuỗi. Tuy nhiên, lệnh này cũng có thể trả về FALSE nếu xảy ra lỗi

Lệnh này yêu cầu các tham số sau

  • $cmd – Yêu cầu một giá trị chuỗi chứa lệnh mà bạn muốn thực thi
  • &$output – Là một tham số tùy chọn mong đợi một biến mảng. Hàm exec() sẽ cập nhật biến với mọi dòng đầu ra từ lệnh. Khoảng trắng ở cuối, chẳng hạn như \n, không được bao gồm trong mảng này. Ngoài ra, exec() sẽ thêm vào cuối mảng nếu mảng đã chứa các mục
  • &$resultCode – Là một tham số tùy chọn mong đợi một biến số nguyên. Hàm exec() sẽ cập nhật biến với trạng thái thoát của lệnh đã thực hiện

Ký hiệu & có nghĩa là giá trị của biến sẽ được cập nhật khi nó thay đổi bên trong hàm. Nói cách khác, biến được truyền theo tham chiếu

Tiếp theo, hãy xem cách bạn có thể sử dụng hàm exec() để trả về thông tin bộ nhớ của máy Linux

Điều này sẽ xuất ra như sau

Returned with status 0 and output:
Array
(
    [0] =>               total        used        free      shared  buff/cache   available
    [1] => Mem:       16351256     9143564      283052      282788     6924640     6661072
    [2] => Swap:       2097148      279644     1817504
)

hệ thống(chuỗi $cmd, int &$resultCode = null). chuỗi. sai

Hàm system() tương tự như hàm exec(). Tuy nhiên, nó sẽ hiển thị đầu ra trực tiếp (không sử dụng echo() hoặc print())

Lệnh này yêu cầu các tham số sau

  • $cmd – Yêu cầu một giá trị chuỗi chứa lệnh mà bạn muốn thực thi
  • &$resultCode – Là một tham số tùy chọn mong đợi một biến số nguyên. Hàm exec() sau đó sẽ cập nhật biến với trạng thái thoát của lệnh đã thực hiện

Cuối cùng, hãy xem cách sử dụng lệnh hệ thống bằng ví dụ exec() ở trên

Điều này sẽ xuất ra như sau

              total        used        free      shared  buff/cache   available
Mem:       16351256     9246984      238044      307576     6866228     6531868
Swap:       2097148      285036     1812112
Returned with status 0 and output:

kết thúc

Thật dễ dàng để thực thi các lệnh shell trong PHP. Ngoài ra, hàm shell_exec(),  exec() hoặc system() không được tắt trong php. tập tin ini

Bạn cũng có thể quan tâm

  • Cách xem lỗi shell_exec() trong PHP
  • Kiểm tra mã PHP của bạn với tư cách là người dùng dữ liệu www
  • Cách gửi một mảng kết hợp với HTML & PHP
  • Cách sử dụng hàm trong Bash Scripting
  • Khái niệm cơ bản về Bash Scripting
cập nhật
  • 27-07-2021 – Đã thêm thông tin về việc tắt chức năng trong php. Trong

Nguồn

  • http. //php. net/thủ công/vi/chức năng. shell-exec. php
  • http. //php. net/thủ công/vi/chức năng. giám đốc điều hành. php
  • https. //www. php. net/thủ công/vi/chức năng. hệ thống. php


Giới thiệu về tác giả

Nhóm biên tập của Anto cũng yêu thích đám mây như bạn. Mỗi thành viên trong nhóm biên tập của Anto đều là chuyên gia về Đám mây theo cách riêng của họ. Anto Online rất tự hào trong việc giúp đỡ những người đam mê Cloud. Hãy cho chúng tôi biết nếu bạn có ý tưởng tuyệt vời cho chủ đề tiếp theo. Liên hệ với Anto Online nếu bạn muốn đóng góp

Làm cách nào để chạy hàm PHP trong dòng lệnh?

Thực thi tệp PHP ¶ .
Yêu cầu PHP thực thi một tệp nhất định. $ php my_script. php $ php -f my_script. php. .
Truyền mã PHP để thực thi trực tiếp trên dòng lệnh. $ php -r 'print_r(get_define_constants());'.
Cung cấp mã PHP để thực thi thông qua đầu vào tiêu chuẩn ( stdin )

Hàm exec() trong PHP là gì?

Hàm exec() là một hàm có sẵn trong PHP được sử 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.

Mã PHP chạy như thế nào?

Nếu máy chủ web xác định rằng yêu cầu dành cho tệp PHP (thường là chỉ mục. php ), nó sẽ chuyển tệp đó tới trình thông dịch PHP. Trình thông dịch PHP sẽ đọc tệp PHP, phân tích cú pháp tệp đó (và các tệp được bao gồm khác) rồi thực thi tệp đó . Khi trình thông dịch PHP kết thúc thực thi tệp PHP, nó sẽ trả về một đầu ra.

Làm thế nào để chạy một dự án PHP?

Bây giờ, để chạy tập lệnh PHP. .
Chuyển đến “C. \xampp\htdocs” và bên trong nó, tạo một thư mục. .
Trong thư mục demo, tạo một tệp văn bản mới và đặt tên là “index. .
Bây giờ, để xem đầu ra của tập lệnh, hãy mở bảng điều khiển XAMPP và khởi động Apache để lưu trữ máy chủ web cục bộ, nơi tập lệnh của chúng ta sẽ chạy