Làm cách nào để gọi tập lệnh bash từ 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(). sợi dây

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). sợi dây. 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). sợi dây. 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 cách sử dụ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 tập lệnh bash bằng PHP?

Tôi có tệp php bên dưới để chạy tập lệnh bash. ? php $old_path = getcwd(); . /Script2. sh $var"); chdir($old_path); echo $output; ?>

Làm cách nào để gọi shell script từ PHP?

Hàm shell_exec() là một hàm sẵn có trong PHP, được sử dụng để thực thi các lệnh thông qua shell và trả về đầu ra hoàn chỉnh dưới dạng . Shell_exec là bí danh của toán tử backtick, dành cho những toán tử đã sử dụng *nix.

Làm cách nào để chạy tập lệnh từ PHP?

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àm cách nào để chạy lệnh Linux trong tập lệnh PHP?

Bạn có thể thực thi các lệnh linux trong tập lệnh php - tất cả những gì bạn phải làm là đặt dòng lệnh trong dấu ngoặc vuông (`) . Và cũng tập trung vào exec() , this và shell_exec(). Lưu câu trả lời này.