PHP 於 CLI 吃 URL 參數 給 $_GET 使用

PHP 於 CLI 界面,想要將網址的參數丟進去,然後讓 $_GET 直接吃到,該怎麼做呢?

註:使用情境在於網頁程式寫好,但是想要測試的時候,於 CLI 想要使用同樣頁面來做測試,可以這樣子做。

PHP 於 CLI 吃 URL 參數 給 $_GET 使用

使用 array_slice 將 CLI 參數全部吃進來,再使用 & 合成一行後,再來丟給 parse_str 分割,切完後送給 $_GET 就跟網頁平常接到的內容一樣了~

cli.php 的程式碼如下:

<?php
parse_str(implode('&', array_slice($argv, 1)), $GET);
printr($GET);
?>

範例:(下述兩個輸入方式,結果都是一樣的)

  • $ php cli.php "a=1&b[]=2&b[]=3"
  • $ php cli.php a=1 b[]=2 b[]=3

輸出結果

Array (
    [a] => 1
    [b] => Array (
        [0] => 2
        [1] => 3
    )
)
  • 註:
    • $_GET['a'] = 1;
    • $_GET['b'] = array('2', '3');

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料