suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Ist es möglich, GET und argv gleichzeitig in PHP zu verwenden?

Ich habe die PHP-Datei einer Webanwendung gesehen, die geschrieben wurde:

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

Voller Fragen? ? ?
Kann mir jemand sagen, wie ich diese Methode anwenden kann? Ich kann sie nirgendwo finden. . .
Danke! ! !

phpcn_u1582phpcn_u15822795 Tage vor534

Antworte allen(5)Ich werde antworten

  • 阿神

    阿神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,而不是文件的位置

    Antwort
    0
  • 黄舟

    黄舟2017-05-18 10:49:35

    $_GET, 一般是存放query stringkey=>value数组, 原则上来说是只读的, 但是进行赋值也是可以的, 但是不提倡这么做.

    Antwort
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-18 10:49:35

    正常来说$_GET和$argv不应该出现在一起,一个是web执行,一个是命令行执行,但刚才搜了下貌似通过php-cgi可以传递get,点击这里查看。

    Antwort
    0
  • 世界只因有你

    世界只因有你2017-05-18 10:49:35

    $act=$_GET['act'];是获取url上的act=xxxx后面的字符串xxxx。$act = $argv[1]是获取了命令行中的第二个参数值。

    这里代码的逻辑就是先从url获取参数,如果参数有值那么就重新赋值。所以这段代码最后$act就是$argv[1]的值,这个php文件只能用在命令行中调用!

    Antwort
    0
  • 仅有的幸福

    仅有的幸福2017-05-18 10:49:35

    建议楼主最好是改掉,不要混用,argv建议是在命令行用,get post request等等还是区分开用比较好。

    Antwort
    0
  • StornierenAntwort