php 命令行方式運行時 幾種傳入參數的方式


1. url方式

$param = array();

if ($argc > 1) {
    parse_str ( $argv [1], $param );
    foreach ( $param as $k => $v ) {
        echo "define $k=$v\n";
        $param[$k] = $v;
    }
}

print_r($param);

//運行示例
php sync_t_search.php "name=sjk&city=bj"

 

2、系統內置變量

//當傳入多個或多個參數可選時有很大的局限性
$argv #0為當前執行的文件名
$argc #參數個數

 

3、系統函數 getopt

//1、個人總結:如果只傳一個參數,:(必選)/::(可選)都可
//2、如果傳多個參數則要區分可選必選,建議盡量用可選參數並且后面的值不要傳入空格
//3、可選參數:標識符存在且有值時,下標才會存在
//4、必選參數:只要標識符存在,下標就會存在(如果取不到值為false) /** * php song.php -h"a b" || php song.php -h"a b" 不受空格影響(建議保持一致都不加空格) array(1) { ["h"]=> string(3) "a b" } php song.php -h -a array(1) { ["h"]=> string(2) "-a" } */ var_dump(getopt('h:a::')); //必選參數,如果參加之間有空格要加引號, 選項后面有空格也不會影響取值,會把他后面的值都當做參數的值 /** php song.php -asong array(1) { ["a"]=> string(4) "song" } */ var_dump(getopt('a::h:')); //可選參數,參數必須緊跟在選項后面,否則獲取不到

 

4、系統函數 getopt

//標准輸出
fwrite(STDOUT, "Enter your name: ");
echo "\n";
//標准輸入
$name = trim(fgets(STDIN));
fwrite(STDOUT, "Hello, $name!");

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM