看到一個web應用的php檔案上寫:
$act=$_GET['act'];
if ($act)
{
$act = $argv[1];
}
滿臉問號啊? ? ?
哪位懂這種用法的跟我講講,到處都搜不到啊。 。 。
謝謝! ! !
阿神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,而不是文件的位置
曾经蜡笔没有小新2017-05-18 10:49:35
正常來說$_GET和$argv不應該出現在一起,一個是web執行,一個是命令列執行,但剛才搜了下貌似透過php-cgi可以傳遞get,點擊這裡查看。
世界只因有你2017-05-18 10:49:35
$act=$_GET['act'];是取得url上的act=xxxx後面的字串xxxx。 $act = $argv[1]是取得了命令列中的第二個參數值。
這裡程式碼的邏輯就是先從url取得參數,如果參數有值那麼就重新賦值。所以這段程式碼最後$act就是$argv[1]的值,這個php檔案只能用在命令列呼叫!