可以在php中同時使用GET和argv麼
phpcn_u1582
phpcn_u1582 2017-05-18 10:47:35
0
5
519

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

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

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

phpcn_u1582
phpcn_u1582

全部回覆(5)
阿神

有時您不能或不想安裝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,而不是文件的位置

黄舟

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

曾经蜡笔没有小新

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

世界只因有你

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

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

仅有的幸福

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板