• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

PHP 指令稿讀取命令列參數教學與範例

介紹如何在 PHP 中使用 $argv 與 $argc 變數與 getopt 函數讀取指令稿在命令列執行時所附帶的參數。

$argv 與 $argc

PHP 中的 $argc 與 $argv 兩個特殊變數記錄了 PHP 指令稿執行時所附帶的參數個數與參數內容,以下是一個簡單的使用範例。

<?php
echo "參數數量:$argc\n";

echo "參數內容:\n";
var_dump($argv);
?>

假設這個指令稿名稱為 script.php,而執行指令為:

# 執行 PHP 指令稿並附帶參數
php script.php my params

輸出則為:

參數數量:3
參數內容:
array(3) {
  [0]=>
  string(10) "script.php"
  [1]=>
  string(2) "my"
  [2]=>
  string(6) "params"
}

getopt 函數

PHP 的 getopt 函數可以自動依據參數樣板解析命令列的參數,將各個參數名稱與值轉換為關聯式陣列,以下是一個簡單的範例:

<?php
# 以 getopt 解析命令列參數
#   a: 代表可接受 -a A_VALUE
#   b 代表可接受 -b
#   c: 代表可接受 -c C_VALUE
$options = getopt("a:bc:");
var_dump($options);
?>

其中 getopt 函數所接受的 "a:bc:" 就是一個參數樣板,英文字母或數字(包含 a-z、A-Z、0-9)代表命令列參數中所有可能出現的參數名稱,而若名稱後方加上一個冒號(:)則代表該參數會接著一個參數值。

假設此指令稿的名稱為 script2.php,則實際執行狀況如下:

php script2.php -a param -b
array(2) {
  ["a"]=>
  string(5) "param"
  ["b"]=>
  bool(false)
}
php script2.php -a param -b -c other
array(3) {
  ["a"]=>
  string(5) "param"
  ["b"]=>
  bool(false)
  ["c"]=>
  string(5) "other"
}

getopt 函數也支援長參數名稱的解析,以下是解析長參數名稱的範例:

<?php
# 短參數名稱
$shortopts = "a:bc:";

# 長參數名稱
$longopts  = array(
  "required:", # 可接受 --required VALUE
  "option"     # 可接受 --option
);

$options = getopt($shortopts, $longopts);
var_dump($options);
?>

假設此指令稿的名稱為 script3.php,則實際執行狀況如下:

php script3.php -c short --required long
array(2) {
  ["c"]=>
  string(5) "short"
  ["required"]=>
  string(4) "long"
}

分類:PHP

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • Linux 使用 TPM 2.0 產生真隨機亂數教學與範例
  • hashcat 密碼雜湊快速破解工具使用教學與範例
  • macOS 使用 GPGTools 與 GPG Mail 對郵件加密、解密、簽章、驗證教學與範例
  • wrk:HTTP 網頁伺服器效能測試工具使用教學
  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide