看到一個web應用的php檔案上寫:
$act=$_GET['act']; if ($act) { $act = $argv[1]; }
滿臉問號啊? ? ? 哪位懂這種用法的跟我講講,到處都搜不到啊。 。 。 謝謝! ! !
有時您不能或不想安裝php-cgi,您没有编辑php文件的选项可以将$_GET設定為傳入的參數.
php-cgi
$_GET
$act=$_GET['act']; if ($act){ $act = $argv[1]; }
您可以從您的php應用程式中的$argv數組存取您啟動腳本的變數。第一個條目將是他們來自的腳本的名稱
$argv
php -r '$_GET["key"]="value"; require_once("script.php");
這樣可以避免更改您的php文件,并允许您使用plain php命令。如果你安装了php-cgi,一定要用這個
php
plain php
-r表示在以下字符串中运行php代码。您手动设置$_GET值,然後引用要執行的檔案。
-r
值得注意的是,您應該在正確的資料夾中運行此文件,通常但並不總是php文件所在的文件夹。Requires語句將使用您的命令的位置來解析相對的URL,而不是文件的位置
Requires
$_GET, 一般是存放query string的key=>value數組, 原則上來說是只讀的, 但是進行賦值也是可以的, 但是不提倡這麼做.
query string
key=>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等等還是區分開用比較好。
有時您不能或不想安裝
php-cgi
,您没有编辑php文件的选项可以将$_GET
設定為傳入的參數.您可以從您的php應用程式中的
$argv
數組存取您啟動腳本的變數。第一個條目將是他們來自的腳本的名稱這樣可以避免更改您的
php
文件,并允许您使用plain php
命令。如果你安装了php-cgi
,一定要用這個-r
表示在以下字符串中运行php
代码。您手动设置$_GET
值,然後引用要執行的檔案。值得注意的是,您應該在正確的資料夾中運行此文件,通常但並不總是
php
文件所在的文件夹。Requires
語句將使用您的命令的位置來解析相對的URL,而不是文件的位置$_GET, 一般是存放
query string
的key=>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等等還是區分開用比較好。