Php exec trả về giá trị 2
Mặc dù PHP là một ngôn ngữ mạnh mẽ với nhiều tiện ích mở rộng có sẵn để xử lý các thư viện chuyên dụng, nhưng bạn có thể thấy hữu ích khi có thể chạy các chương trình bên ngoài khi cần thiết, đặc biệt nếu bạn chạy Unix nơi HĐH đi kèm với nhiều chương trình cài sẵn hơn Show Trong PHP có hai phương thức quan trọng để thực thi chương trình, đó là exec() và passthru(). Cả hai tham số này đều nhận tối thiểu một tham số, đó là tên của chương trình bạn muốn chạy, nhưng điểm khác biệt giữa chúng là hàm exec() chạy chương trình sau đó gửi lại dòng cuối cùng được xuất ra từ chương trình đó làm giá trị trả về của nó. Mặt khác, hàm passthru() chạy chương trình được chỉ định và in ra tất cả đầu ra mà chương trình tạo ra. Gọi exec() thường được ưu tiên khi đầu ra của chương trình của bạn không liên quan, trong khi passthru() tự động in đầu ra của bạn. Đây là cả hai trong hành động
Cả hai lệnh này đều có sẵn trên các hộp Unix tiêu chuẩn. Lưu ý rằng do thời gian hoạt động thường chỉ trả về một dòng, nên việc sử dụng print exec() hay passthru() không thành vấn đề Nếu bạn chuyển tham số thứ hai và thứ ba cho exec(), đầu ra của lệnh sẽ được đưa vào tham số hai dưới dạng một mảng với mỗi phần tử một dòng và giá trị trả về của lệnh sẽ được đưa vào tham số ba. Tương tự, nếu bạn truyền tham số thứ hai cho passthru() thì tham số đó sẽ chứa đầy giá trị trả về của lệnh Ví dụ
Ví dụ đó sẽ hoạt động tốt trên Windows cũng như nhiều phiên bản Unix Ghi chú của tác giả. Nếu máy chủ của bạn là hộp Unix, hãy thử sử dụng passthru("fortune") để nhận hệ thống báo giá ngẫu nhiên nhanh chóng và dễ dàng ở cuối trang của bạn. Lưu ý rằng fortune có thể không được cài đặt hoặc không có sẵn cho tập lệnh PHP của bạn - hãy liên hệ với quản trị viên hệ thống của bạn để tìm hiểu Có sẵn các hàm thực thi khác, đáng chú ý là shell_exec() và system(), tuy nhiên chúng hầu như không liên quan - ví dụ: shell_exec() hoạt động giống hệt như toán tử backtick mà chúng ta đã xem xét trước đó Ghi chú của tác giả. Lấy đầu vào của người dùng và chuyển nó đến một trong các chức năng thực thi chương trình này có khả năng gây tử vong - người dùng có thể dễ dàng bỏ qua bảo mật và làm những điều xấu với máy chủ của bạn. Nếu bạn thực sự phải sử dụng dữ liệu người dùng làm đầu vào cho lệnh gọi chương trình của mình, trước tiên hãy chuyển dữ liệu đó qua hàm escapeshellcmd() đặc biệt - hàm này nhận dữ liệu đầu vào của bạn và trả về ở định dạng an toàn có thể sử dụng được Cho đến giờ chúng ta đã xem xét việc thực thi các chương trình bên ngoài bằng exec() và system(), nhưng có một chức năng thứ ba cũng cho phép bạn thực thi bên ngoài, mặc dù nó hoạt động hoàn toàn khác so với hai chức năng kia. Hàm virtual() chỉ nhận một tham số và, bất thường, chỉ hoạt động trên máy chủ web Apache và SunONE. Không giống như exec() và system(), virtual() thực hiện một yêu cầu ảo tới máy chủ web cho một tệp, gần như thể chính tập lệnh của bạn là một ứng dụng khách. Yêu cầu này được xử lý như bình thường và đầu ra của nó được gửi lại cho tập lệnh của bạn Ví dụ: sử dụng phương pháp này, bạn có thể thực thi tập lệnh Perl từ tập lệnh PHP của mình hoặc thực sự kỳ lạ là thực thi tập lệnh PHP khác từ tập lệnh PHP của bạn. Thoạt đầu, việc sử dụng virtual() có vẻ không rõ ràng, đơn giản vì chúng rất ít và cách xa nhau. Tuy nhiên, nếu bạn có một trang trên trang web của mình yêu cầu thực thi đặc biệt, thì bạn phải sử dụng exec(), chuyển vào tên của chương trình xử lý trang cũng như chính tên tệp của trang, bạn có thể sử dụng include() Bạn muốn học PHP 7? Hacking with PHP đã được cập nhật đầy đủ cho PHP 7 và hiện có sẵn dưới dạng PDF có thể tải xuống. Nhận hơn 1200 trang học PHP thực hành ngay hôm nay Nếu điều này hữu ích, vui lòng dành chút thời gian để nói với những người khác về Hacking với PHP bằng cách tweet về nó 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 một chuỗi. Shell_exec là bí danh của toán tử backtick, dành cho những toán tử đã sử dụng *nix. Nếu lệnh không thành công, trả về NULL và các giá trị không đáng tin cậy để kiểm tra lỗi cú pháp string shell_exec( $cmd ) Thông số. Hàm này chấp nhận một tham số $cmd được sử dụng để giữ lệnh sẽ được thực thi Giá trị trả về. Hàm này trả về lệnh đã thực hiện hoặc NULL nếu xảy ra lỗi Ghi chú. Chức năng này bị tắt khi PHP đang chạy ở chế độ an toàn Thí dụ string shell_exec( $cmd )1 string shell_exec( $cmd )2 string shell_exec( $cmd )3 string shell_exec( $cmd )4 string shell_exec( $cmd )5 string shell_exec( $cmd )6 gfg.php index.html geeks.php0 gfg.php index.html geeks.php1 string shell_exec( $cmd )2 gfg.php index.html geeks.php3 gfg.php index.html geeks.php4 gfg.php index.html geeks.php5 gfg.php index.html geeks.php6 gfg.php index.html geeks.php7 gfg.php index.html geeks.php8 đầu ra gfg.php index.html geeks.php hàm exec() Hàm exec() là một hàm sẵn có 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 cú pháp 2Thông số. Hàm này chấp nhận ba tham số như đã đề cập ở trên và được mô tả bên dưới
Giá trị trả về. Hàm này trả về lệnh đã thực hiện, đảm bảo đặt và sử dụng tham số đầu ra Thí dụ string shell_exec( $cmd )1 20gfg.php index.html geeks.php5 22____123 24gfg.php index.html geeks.php1 gfg.php index.html geeks.php8 đầu ra string shell_exec( $cmd )0 Người giới thiệu
PHP là ngôn ngữ kịch bản phía máy chủ được thiết kế dành riêng cho phát triển web. Bạn có thể học PHP từ đầu bằng cách làm theo Hướng dẫn PHP và Ví dụ về PHP này exec trả về cái gì trong PHP?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.
Shell_exec trả về cái gì?shell_exec — Thực thi lệnh thông qua shell và trả về kết quả đầu ra hoàn chỉnh dưới dạng chuỗi .
PHP exec có đợi cho đến khi hoàn thành không?PHP exec sẽ đợi cho đến khi chương trình được gọi kết thúc thực hiện , trước khi xử lý dòng tiếp theo, trừ khi bạn sử dụng & ở cuối chuỗi để chạy chương trình ở chế độ nền.
Sự khác biệt giữa exec và Shell_exec 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 . |