看到一个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等等还是区分开用比较好。