shell執行PHP時,傳參的三種方式

php執行http請求時,可使用GET或POST請求,但在shell命令行下沒法使用。
如下爲命令行下的三種傳值方式php

1、使用 $argv & $ $argc 參數接收

$argc:傳遞到腳本的參數數目 Manual
$argv:傳遞給腳本的參數數組 Manual
注意:shell

  • 這兩個變量僅在register_argc_argv打開時可用
  • 第一個參數老是當前腳本的文件名

php代碼數組

<?php
    var_dump($argc);
    var_dump($argv);

shell命令函數

//sh命令
    php index.php a b c
    //結果
    Array(
        [0] => index.php
        [1] => a
        [2] => b
        [3] => c
    )

2、使用getopt函數

getopt(): 從命令行參數列表中獲取選項.net

// 使用格式
    array getopt ( string $options [, array $longopts [, int &$optind ]] )
    //參數
   1.options : 該字符串中的每一個字符會被當作選項字符,匹配傳入腳本的選項以單個連字符(-)開頭。 好比,一個選項字符串 "x" 識別了一個選項 -x。 只容許 a-z、A-Z 和 0-9。
          1.1單獨的字符(不接受值)
          1.2後面跟隨冒號的字符(此選項須要值)
          1.3後面跟隨兩個冒號的字符(此選項的值可選)
    2.longopts:選項數組。此數組中的每一個元素會被做爲選項字符串,匹配了以兩個連字符(--)傳入到腳本的選項。 例如,長選項元素 "opt" 識別了一個選項 --opt。
    3.optind:若是OPTIND參數存在,那麼指數參數解析中止將寫入該變量。
 //注意:選項的值不接受空格(" ")做爲分隔符。

php代碼命令行

<?php 
    $params = getopt("a:b:");
    var_dump($params);

shell命令code

//sh命令
php index.php -a 1 -b 2
//結果
array(
    [a] => 1
    [b] => 2
)

3、提示用戶輸入

<?php
    //提示用戶輸入,相似Python
    fwrite(STDOUT,'請輸入您的博客名:');
    echo '您輸入的信息是:'.fgets(STDIN);

php代碼字符串

<?php
// 提示用戶輸入,相似Python
$fs = true;
do{
    if($fs){
        fwrite(STDOUT,'請輸入您的博客名:');
        $fs = false;
    }else{
        fwrite(STDOUT,'抱歉,博客名不能爲空,請從新輸入您的博客名:');
    }
    $name = trim(fgets(STDIN));
}while(!$name);
 
echo '您輸入的信息是:'.$name."\r\n";

shell命令行get

[root@DELL113 lee]# /usr/local/php/bin/php test.php 
    請輸入您的名稱: test
    您輸入的信息是: test
相關文章
相關標籤/搜索