首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 命令行模式完全指南:常用參數、腳本執行、語法檢查、代碼高亮、內置手冊查詢

     編輯:PHP 綜合知識

PHP 不僅是 Web 開發語言,其 CLI (Command Line Interface) 模式同樣強大,可用於定時任務、腳本自動化、代碼檢查、手冊查詢等。本文系統整理命令行參數與實用技巧。

核心命令行參數速查

參數說明示例
-q靜默模式,不輸出 HTTP Headerphp -q script.php
-f <file>解析並執行指定文件php -f hello.php
-r <code>直接運行 PHP 代碼片段(無需 )php -r 'echo "hi";'
-a進入交互式 Shell (REPL)php -a
-l <file>僅語法檢查 (lint),不執行php -l script.php
-s <file>輸出語法高亮 HTML(保留字綠、變量藍、註釋黃、字符串紅)php -s script.php
-i顯示 phpinfo() (純文本版)php -i
-m列出已編譯/加載的擴展模塊php -m
-v顯示 PHP 版本信息php -v
--ini顯示加載的 php.ini 路徑及掃描目錄php --ini
-c <path>指定 php.ini 文件目錄php -c /custom/path script.php
-d foo=bar運行時覆蓋 ini 設置php -d display_errors=1 script.php
--rf <func>顯示內置函數反射信息 (參數、返回類型等) — PHP 5.1.2+php --rf strip_tags
-z <file>加載 Zend 擴展php -z opcache.so
-h / --help顯示幫助信息php -h

實用場景示例

1. 將 PHP 腳本作為 Shell 命令執行

#!/usr/bin/php -q
 1 && $argv[1] && echo "Arg: $argv[1]\n";

2. 定時任務 (Crontab) 調用

# 每天凌晨 3 點執行備份腳本
0 3 * * * /usr/bin/php -q /var/www/html/scripts/backup.php >> /var/log/backup.log 2>&1

注意: CLI 環境下 $_SERVER、$_SESSION、$_GET 等超全局變量不可用或為空,僅 $argc/$argv 可靠。

3. 語法檢查與代碼高亮

# 檢查語法錯誤(CI/CD 必備)
php -l src/Controller/UserController.php
# 輸出: No syntax errors detected in ...

# 生成高亮 HTML 用於文檔/博客展示
php -s src/Controller/UserController.php > UserController.html

4. 交互式調試 (REPL)

$ php -a
Interactive shell
php > $arr = [1,2,3];
php > echo array_sum($arr);
6
php > quit

5. 查看函數簽名 (內置手冊)

$ php --rf json_encode
Function [  function json_encode ] {
  - Parameters [3] {
    Parameter #0 [  $value ]
    Parameter #1 [  $options ]
    Parameter #2 [  $depth ]
  }
}

6. 運行時覆蓋配置

# 臨時開啟所有錯誤報告
php -d error_reporting=E_ALL -d display_errors=1 -f script.php

CLI vs Web SAPI 關鍵差異

特性CLIWeb (FPM/Apache)
輸出緩衝默認關閉 (隱式 flush)默認開啟
最大執行時間無限制 (0)受 max_execution_time 限制
當前工作目錄腳本所在目錄Web 根目錄
$_SERVER['argc/argv']可用不可用
HTML 輸出無特殊處理發送 Header
錯誤顯示直接輸出 STDERR按 display_errors 顯示頁面

進階技巧

  • 獲取標準輸入:$stdin = fopen('php://stdin', 'r'); $line = fgets($stdin); 或 stream_get_contents(STDIN)。
  • 顏色輸出:echo "\033[32mGreen\033[0m\n"; (ANSI 轉義碼),或用 symfony/console 組件。
  • 進程信號處理:CLI 下可用 pcntl_signal 捕獲 SIGINT (Ctrl+C) 做優雅關閉。
  • Composer 腳本調用:"scripts": {"test": "php -d memory_limit=512M vendor/bin/phpunit"}。

總結

掌握 PHP CLI 模式,能將 PHP 能力延伸至運維自動化、數據遷移、隊列消費、代碼質量檢查等非 Web 領域。-l、-s、--rf、-a 是開發階段的高頻利器;-q、-f、-d 是生產部署的標準配置。善用命令行,效率倍增。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved