author Ahmad Muhardian

Cara Mengambil Input di PHP CLI


Fungsi input di php cli

Seperti yang sudah saya bahas pada tulisan sebelumnya. PHP CLI merupakan PHP yang berjalan di atas Command Line. Biasanya, program yang berbasis teks memiliki fungsi tersendiri untuk mengambil input. Contohnya Python menggunakan fungsi input() dan raw_input(), java menggunakan Scanner dan BufferReader, C++ menggunakan cin, Pascal menggunakan readln(), dsb. Lalu, Bagaiaman dengan PHP?

Menggunakan Fungsi fopen()

Cara pertama mengambil input di PHP CLI adalah dengan menggunakan fungsi fopen(). Pada dasarnya fungsi ini digunakan untuk membuka atau membaca file. Namun, dapat digunakan juga untuk mengambil input. Contoh penggunaan:

<?php

echo "Siapa nama kamu: ";
$input_nama = fopen("php://stdin","r");
$nama = trim(fgets($input_nama));

echo "Hello $nama, apa kabar?\n";

?>

Hasilnya ketika dieksekusi:

Percobaan pengambilan input di PHP CLI

Pada contoh di atas, fungsi fopen() harus diberikan paramater "php://stdin" dan "r" untuk membaca apa yang diketik di Terminal. Kemudian, kita membutuhkan dua fungsi lagi agar mendapatkan nilai yang murni. Fungsi fgets() untuk membaca baris inputan, kemudian fungsi trim() untuk menghapus karakter enter ("\n") atau spasi di akhir inputan yang ikut dibaca. Bila kita tidak menggunakan fungsi trim() maka nilai yang akan dibaca ketika diinputkan “Petani Kode” adalah “Petani Kode\n”. “\n” itu didapatkan dari tombol enter.

Menggunakan STDIN

Ada cara yang lebih sederhana, yaitu menggunakan STDIN. Cara ini sama juga seperti yang tadi, cuma perbedaanya tidak menggunakan fungsi fopen(). Kita bisa langsung mengambil nilai dengan fungsi fgets(). Lalu kita gunakan fungsi trim() untuk membersihkannya dari “\n”. Contoh:

<?php

echo "Dari mana anda berasl: ";
$asal = trim(fgets(STDIN));
echo "Oh, dari $asal ya\n";

?>

Hasil output ketika dieksekusi:

Pengambilan input di PHP CLI dengan konstanta STDIN

Itulah dua cara mengambil input di PHP CLI, manakah cara yang paling mudah? Silahkan anda tentukan sendiri. Kalau pun ada cara lain silahkan ditambahkan dan kalau masih tidak paham silahkan ditanyakan.

Referensi: https://stackoverflow.com/questions/6543841/php-cli-getting-input-from-user-and-then-dumping-into-variable-possible