搜尋

首頁  >  問答  >  主體

可以在php中同時使用GET和argv麼

看到一個web應用的php檔案上寫:

$act=$_GET['act'];
if ($act)
{
$act = $argv[1];
}

滿臉問號啊? ? ?
哪位懂這種用法的跟我講講,到處都搜不到啊。 。 。
謝謝! ! !

phpcn_u1582phpcn_u15822863 天前568

全部回覆(5)我來回復

  • 阿神

    阿神2017-05-18 10:49:35

    有時您不能或不想安裝php-cgi,您没有编辑php文件的选项可以将$_GET設定為傳入的參數.

    $act=$_GET['act'];
    if ($act){
        $act = $argv[1];
    }
    

    您可以從您的php應用程式中的$argv數組存取您啟動腳本的變數。第一個條目將是他們來自的腳本的名稱

    php -r '$_GET["key"]="value"; require_once("script.php"); 

    這樣可以避免更改您的php文件,并允许您使用plain php命令。如果你安装了php-cgi,一定要用這個

    -r表示在以下字符串中运行php代码。您手动设置$_GET值,然後引用要執行的檔案。

    值得注意的是,您應該在正確的資料夾中運行此文件,通常但並不總是php文件所在的文件夹。Requires語句將使用您的命令的位置來解析相對的URL,而不是文件的位置

    回覆
    0
  • 黄舟

    黄舟2017-05-18 10:49:35

    $_GET, 一般是存放query stringkey=>value數組, 原則上來說是只讀的, 但是進行賦值也是可以的, 但是不提倡這麼做.

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-18 10:49:35

    正常來說$_GET和$argv不應該出現在一起,一個是web執行,一個是命令列執行,但剛才搜了下貌似透過php-cgi可以傳遞get,點擊這裡查看。

    回覆
    0
  • 世界只因有你

    世界只因有你2017-05-18 10:49:35

    $act=$_GET['act'];是取得url上的act=xxxx後面的字串xxxx。 $act = $argv[1]是取得了命令列中的第二個參數值。

    這裡程式碼的邏輯就是先從url取得參數,如果參數有值那麼就重新賦值。所以這段程式碼最後$act就是$argv[1]的值,這個php檔案只能用在命令列呼叫!

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-05-18 10:49:35

    建議樓主最好是改掉,不要混用,argv建議是在命令列用,get post request等等還是區分開用比較好。

    回覆
    0
  • 取消回覆