STDIN di PHP?STDIN adalah singkatan dari Standard Input dan digunakan dalam PHP untuk membaca input dari pengguna saat menjalankan aplikasi melalui Command Line Interface (CLI). Ini adalah salah satu aliran standar yang disediakan oleh PHP, selain STDOUT (untuk output) dan STDERR (untuk error output).
Ketika script PHP dijalankan di CLI, STDIN memungkinkan program untuk menerima data langsung dari terminal atau dari aliran input lain, seperti file atau pipeline.
STDIN?Untuk membaca input dari STDIN, Anda biasanya menggunakan fungsi fgets():
echo "Masukkan nama Anda: ";
$nama = fgets(STDIN);
echo "Halo, $nama!";
Pada contoh di atas:
fgets(STDIN) membaca satu baris input dari terminal.$nama.Input yang dibaca melalui STDIN biasanya mengandung karakter newline (\n) di akhir. Anda dapat menggunakan fungsi trim() untuk menghilangkan karakter tersebut:
echo "Masukkan umur Anda: ";
$umur = trim(fgets(STDIN));
echo "Umur Anda adalah $umur tahun.";
Selain membaca input langsung dari terminal, STDIN juga bisa menerima data dari pipeline (misalnya saat menggunakan tanda | di terminal).
Contoh:
echo "John Doe" | php script.php
Pada script PHP:
$input = trim(fgets(STDIN));
echo "Input dari pipeline: $input";
Output:
Input dari pipeline: John Doe
STDINMenghitung Total dari Input Angka:
echo "Masukkan angka pertama: ";
$angka1 = trim(fgets(STDIN));
echo "Masukkan angka kedua: ";
$angka2 = trim(fgets(STDIN));
if (is_numeric($angka1) && is_numeric($angka2)) {
$total = $angka1 + $angka2;
echo "Totalnya adalah: $total" . PHP_EOL;
} else {
echo "Input harus berupa angka!" . PHP_EOL;
}
Membaca Data dari File Melalui Pipeline:
cat data.txt | php script.php
Script PHP:
while (($line = fgets(STDIN)) !== false) {
echo "Baris: " . trim($line) . PHP_EOL;
}
STDIN?argv.STDIN adalah fitur penting di PHP untuk membaca input dari pengguna atau aliran data dalam konteks CLI. Ini memungkinkan pengembangan skrip CLI yang dinamis, interaktif, dan dapat digunakan dalam alur kerja otomatisasi.
<?php
// Fungsi untuk menghitung luas persegi panjang
function hitungLuasPersegiPanjang($panjang, $lebar) {
return $panjang * $lebar;
}
// Mengecek apakah script dijalankan di CLI
if (php_sapi_name() === 'cli') {
// Meminta input panjang dari pengguna
echo "Masukkan panjang: ";
$panjang = trim(fgets(STDIN));
// Meminta input lebar dari pengguna
echo "Masukkan lebar: ";
$lebar = trim(fgets(STDIN));
// Validasi input apakah angka
if (is_numeric($panjang) && is_numeric($lebar)) {
$luas = hitungLuasPersegiPanjang($panjang, $lebar);
echo "Luas persegi panjang adalah: " . $luas . PHP_EOL;
} else {
echo "Input harus berupa angka!" . PHP_EOL;
}
} else {
echo "Script ini hanya dapat dijalankan melalui CLI." . PHP_EOL;
}
c:\xampp\php\php.exe stdin.php
c:\xampp\php\php.exe stdinsegitiga.php