As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com Fungsi exec() As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com
Langkah 1 Tentukan perintah yang ingin dijalankan pada console, misalnya: dir mkdir cls Perintah dapat juga berupa aplikasi yang telah di-compile
Contoh listing C/C++ #include<stdio.h> main(){ printf("ini baris pertama\n"); printf("ini baris kedua"); return 7; }
Langkah 2 Compile aplikasi menjadi file executable, misalnya berupa file .exe pada sistem operasi DOS/Windows
Langkah 3 Buat listing file PHP menggunakan fungsi exec() untuk menjalankan perintah/aplikasi yang telah di-compile sebelumnya
Contoh listing PHP <?php exec("coba.exe", $terisi, $nilai); echo $terisi[0] . "<br>"; echo $terisi[1] . "<br>"; echo $nilai; ?>
Tentang fungsi exec() Fungsi exec() digunakan untuk menjalankan perintah pada console/shell sistem operasi exec(param 1, param 2, param 3); parameter 1 diisi perintah yang akan dijalankan parameter 2 adalah variabel yg akan menampung output yg tampil pada console dalam bentuk array [opsional] parameter 3 adalah variabel yg menampung nilai return dari perintah [opsional]
Langkah 4 Simpan kedua file tersebut (.exe dan .php) ke dalam folder yang sama
Langkah 5 Buka pada internet browser sesuai alamat situs dan nama file php yang dibuat sebelumnya
Menggunakan fungsi exec() secara dinamis
Percobaan 1
Mengirim perintah ke shell/console sistem operasi Contoh listing di PHP Mengirim perintah ke shell/console sistem operasi
<html> <body> <form name="frm" method="post"> <input type="text" name="perintah" size="100"> <input type="submit" name="proses" value="Proses"> <input type="button" name="ulang" value="Clear" onclick="location.href='testing.php'"> </form> <pre> <?php echo "Isi perintahnya: " . $_POST['perintah'] . "<br><br>"; echo "Outputnya:<br><br>"; exec($_POST['perintah'] , $terisi, $nilai); foreach($terisi as $hasil) echo $hasil . "<br>"; if (!empty($nilai)) echo "Nilai return = " . $nilai; ?> </pre> </body> </html>
Outputnya di browser Contoh perintah yang diinput adalah perintah bawaan sistem operasi DOS: dir /a
Percobaan 2 Menjalankan aplikasi, membaca argumen dan mencetak argumen dan nilai return
Contoh Listing C/C++ #include <stdio.h> main(int argc, char *argv[]) { int i; printf("Jumlah argumen ada %d buah \n", argc); printf("Isi argumen tersebut adalah :\n"); for (i = 0; i < argc; i++) printf("Argumen ke-%d = %s\n", i, argv[i]); return 0; }
argc adalah parameter (bertipe integer) yang akan terisi dengan jumlah argumen yang dikirim dari console argv adalah parameter (bertipe array karakter) yang akan terisi dengan argumen yang dikirim dari console Contoh bila dijalankan lewat console sbb:
Contoh Listing PHP Sama dengan listing PHP dari Percobaan 1
Menghitung luas lewat program dan ditampilkan di web Percobaan 3 Menghitung luas lewat program dan ditampilkan di web
Contoh Listing C/C++ #include <stdlib.h> main(int argc, char *argv[]) { int luas; try{ luas = atoi(argv[1]) * atoi(argv[2]) * atoi(argv[3]); } catch(int e){ return e; return luas;
Contoh Listing PHP <html> <body> <form name="frm" method="post"> Panjang : <input type="text" name="panjang" size="5"> Lebar : <input type="text" name="lebar" size="5"> Tinggi : <input type="text" name="tinggi" size="5"> <input type="submit" name="proses" value="Hitung Luas"> <input type="button" name="ulang" value="Clear" onclick="location.href='testing.php'"> </form> <pre> <?php $perintah = "luas " . $_POST['panjang'] . " " . $_POST['lebar'] . " " . $_POST['tinggi']; echo "Panjang = $_POST[panjang] <br>"; echo "Lebar = $_POST[lebar] <br>"; echo "Tinggi = $_POST[tinggi] <br>"; if(!empty($_POST['proses'])) exec($perintah,$terisi,$nilai); echo "Luasnya = " . $nilai; ?> </pre> </body> </html>
The End