許多開發者習慣用 Perl、Python 或 Ruby 撰寫系統腳本,但若你已熟悉 PHP,其實 PHP CLI(命令列介面)同樣強大且上手快。本文示範如何在 PHP 腳本中處理使用者輸入與檔案讀寫。
定義一個可重複使用的 read_input() 函數:
<?php
#!/usr/bin/php
function read_input() {
$fp = fopen("/dev/stdin", "r");
$input = trim(fgets($fp, 255));
fclose($fp);
return $input;
}
printf("請輸入您的姓名: ");
$name = read_input();
printf(" 你好,%s。\n", $name);
?>
執行方式:php script.php,程式會等待使用者輸入並顯示問候語。
利用 file() 將整個檔案讀入陣列,再逐行處理:
<?php
#!/usr/bin/php
if (!isset($argv[1]) || !file_exists($argv[1])) {
fprintf(STDERR, "錯誤:檔案 '%s' 不存在!\n", $argv[1] ?? '');
exit(1);
}
$file = $argv[1];
$data = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($data as $line_num => $line) {
printf("[%d]: %s\n", $line_num + 1, $line);
}
?>
特點說明:
$argv[1] 取得命令列第一個參數(檔案路徑)file() 自動將每行轉為陣列元素FILE_IGNORE_NEW_LINES 移除換行符,FILE_SKIP_EMPTY_LINES 跳過空行PHP CLI 同樣支援 PDO、MySQLi 等資料庫擴充,可輕鬆撰寫資料備份、ETL、排程任務等腳本,完全不輸給傳統腳本語言。
PHP 已脫離「只能寫網頁」的框架,善用 CLI 模式能讓你以熟悉的語法快速完成系統管理自動化任務。