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

PHP CLI 模式下傳參與接收參數完整指南(含 $argv/$argc 詳解)

     編輯:PHP 相關知識

PHP CLI 模式下傳參與接收參數完整指南

在命令列執行 PHP 腳本時,無法使用 $_GET/$_POST,必須採用 CLI 專屬的參數機制。本文詳細說明為何需要 CLI、如何正確傳遞與接收參數,並對比 Shell 腳本異同。

為什麼要用命令列執行 PHP?

  1. 分流壓力:將耗時任務(如生成好友動態、報表統計)移至 Crontab 定時執行,降低 Web 服務器與資料庫峰值負載。
  2. 自動化排程:如每日清理 30 天前留言、同步第三方數據,無需人工干預。

關鍵誤區:HTTP 參數在 CLI 完全無效

$ php test.php?aaa=bbb
Could not open input file: test.php?aaa=bbb

CLI 模式不經過 Web Server,無 HTTP 協議,查詢字符串會被視為文件名一部分導致錯誤。

正確姿勢:$argv 與 $argc

測試腳本 test.php:

<?php
print_r($argv);
echo "\n";
echo $argc;
echo "\n";

執行:

$ php test.php aaa ccc bbbb
Array
(
    [0] => test.php
    [1] => aaa
    [2] => ccc
    [3] => bbbb
)
4
  • $argv[0] 永遠是腳本文件名
  • $argv[1..n] 為用戶傳入參數
  • $argc 為參數總個數(含腳本名)

與 Shell 腳本對比

特性PHP CLIShell Script
參數存取陣列 $argv位置變數 $0 $1 $2...
參數個數$argc$#
類型安全字符串,需自行轉型字符串

進階提示

  • 含空格參數需用引號包裹:php test.php "hello world"
  • 長選項解析可用 getopt() 或 Symfony Console 組件
  • Windows 下路徑含空格需雙引號:php "C:\My Scripts\test.php" arg1

掌握 CLI 參數機制,是編寫健壯定時任務、守護進程、部署腳本的基礎。

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