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');