Saya mencoba ini di command prompt dan itu benar-benar menjalankan program dengan parameter yang diberikan. Ini contoh perintahnya
CATATAN file exe mendapat 3 input (folder, file_name, report_file_nmae)
Tetapi ketika saya menjalankan perintah ini dari file php
exec('..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml'); _tidak ada yang terjadi. Ini adalah pertama kalinya saya menggunakan fungsi exec(), jadi saya tidak mengetahui detailnya. Apa yang salah?
Saya mencoba menggunakan
- > ..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml 1 bukannya > ..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml 2
- > ..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml 3 pada direktori
- menambahkan > ..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml 4 di sekitar nama folder direktori
Tidak beruntung
Tambahan
echo exec($command) // echos < ... why? _atau
exec($command, $output); print_r($output); // Array()Saya bahkan mengubah izin pada file tersebut menjadi kontrol penuh untuk semua pengguna. Jika saya memanggil program dari > ..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml _5, saya dapat melihat ikon muncul di sebelah jam sebentar
PHP menyediakan metode exec() untuk mengeksekusi atau menjalankan perintah, program, atau skrip. Metode exec() ini dapat dengan mudah menjalankan perintah eksternal di sistem operasi. Misalnya, perintah whoami dari Linux dapat dijalankan untuk pengguna saat ini, dan nama pengguna yang dikembalikan dapat digunakan dalam aplikasi PHP
Sintaks Metode exec()
Metode PHP exec() memiliki sintaks berikut
exec(string $command, array &$output, int &$result_code)_- $command adalah tipe string yang merupakan representasi string perintah
- &$output adalah variabel array tempat hasil perintah yang dieksekusi disimpan
- &$result_code adalah int yang menyimpan kode hasil perintah sebagai bilangan bulat
Metode exec() mengembalikan nilai boolean palsu atau string di mana string adalah baris terakhir dari output
Jalankan Perintah
Kita akan mulai dengan contoh sederhana. Kami menjalankan perintah "whoami" di sistem Linux dan menyimpan hasil atau output dalam variabel bernama $output
<?php $output = null; $code = null; exec("whoami",$output,$code); print_r($output) ?>Atau kami dapat memberikan perintah yang ingin kami jalankan sebagai variabel string seperti di bawah ini. Pada contoh berikut kita mengatur perintah ke dalam variabel bernama $command
<?php $output = null; $code = null; $command = "whoami"; exec($command,$output,$code); print_r($output) ?>Whoami adalah perintah yang sangat sederhana yang mengembalikan satu item yang merupakan nama pengguna dari pengguna saat ini. Perintah exec() dapat menjalankan perintah berbeda yang mengembalikan hasil yang lebih kompleks. Perintah "ls" mencantumkan file dan folder direktori kerja saat ini
<?php $output = null; $code = null; $command = "ls"; exec($command,$output,$code); print_r($output); ?>Array ( [0] => a.out [1] => cities.txt [2] => config.ttxt [3] => data1 [4] => data2 [5] => data3 [6] => data4 [7] => data5 ... [40] => text.txt [41] => thinclient_drives [42] => uniqip.txt [43] => userinput.py [44] => usomlist.txt [45] => Videos [46] => while.sh [47] => year )Kita bisa melihat output yang memiliki total 47 item. Output menyimpan setiap item dengan nomor indeks. Outputnya berisi konten direktori kerja saat ini
Jalankan Perintah dengan Opsi dan Parameter
Metode exec() dapat digunakan untuk mengeksekusi dan menjalankan perintah dengan opsi dan parameter. Ini adalah cara yang sama di mana opsi dan parameter diatur di dalam string perintah. Dalam contoh berikut, perintah “ls” dijalankan dengan opsi “-l” dan parameter “/etc”.
<?php $output = null; $code = null; $command = "ls -l /var/log"; exec($command,$output,$code); print_r($output); ?>Jalankan Skrip Bash
Metode exec() juga dapat digunakan untuk mengeksekusi skrip perintah bash dengan mudah. Cukup berikan nama skrip jika terletak di direktori kerja saat ini atau tentukan jalur lengkap untuk mencegah kesalahan
Skrip PHP terutama digunakan untuk mengembangkan aplikasi web tetapi juga dapat digunakan untuk tujuan lain. PHP memiliki beberapa fungsi bawaan untuk menjalankan perintah terkait sistem. exec() adalah salah satunya. Ini digunakan untuk menjalankan perintah shell atau program apa pun dari skrip PHP. Bagaimana fungsi ini dapat digunakan dalam PHP ditunjukkan dalam tutorial ini
Sintaksis
string exec ( string $command [, array &$output [, int &$return_var ]] )
Fungsi ini dapat mengambil tiga argumen. Argumen pertama adalah wajib yang akan mengambil perintah sistem. Dua argumen lainnya adalah opsional. Argumen kedua digunakan untuk menyimpan output dari perintah dalam sebuah array. Argumen ketiga dari fungsi ini digunakan untuk menyimpan status pengembalian dari perintah yang dieksekusi. Fungsi ini mengembalikan baris terakhir dari output perintah yang dieksekusi
Contoh 1. Penggunaan fungsi exec() tanpa argumen opsional
Penggunaan dasar fungsi exec() telah ditunjukkan dalam tutorial ini. Buat file PHP dengan skrip berikut untuk mengetahui bagaimana fungsi exec() mengembalikan output perintah. Perintah 'pwd' telah digunakan dalam perintah exec() pertama dari skrip yang mengembalikan satu baris keluaran. Perintah ‘ls -la‘ telah digunakan dalam perintah exec() kedua yang dapat mengembalikan beberapa baris keluaran. Jika ada perintah yang mengembalikan banyak baris maka output akan menampilkan baris terakhir sebagai output