可以在php中同时使用GET和argv么
phpcn_u1582
phpcn_u1582 2017-05-18 10:47:35
0
5
529

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板