• 【二十三】php之预定义超全局变量


    php提供了九种预定义超全局变量: $_GET、$_POST、$_REQUEST、$_SERVER、$_ENV、$_FILE、 $_COOKIE、$_SESSION、 $GLOBALS

    1.$_GET

    原理图:

    基本使用:

    1. 通过超链接传送消息给服务器(如test.php)
    2. 通过表单传送信息给服务器(<form action="a.php" method="get">)
    3. 通过重定向跳转(header:"location:test.php?aaa=**")

    test.php

    <?php
        //urlencode:url编码
        $str=urlencode("花花啊");
        echo "<a href='a.php?name=huahua&mon=$str'>传送数据</a>";
    ?>

    a.php

    <?php
        // $_GET返回的是一个数组
        echo "<pre>";
        echo print_r($_GET);
        echo "</pre>";
        // 如果想访问数组中指定的数组,可以通过下标名
        // urldecode:url解码
        echo urldecode($_GET['mon']);
    ?>

    判断是否收到了某个值(empty inset)

        // 方式一:
        if (empty($_GET['name'])) {
            echo "没有";
        }else{
            echo "收到".$_GET['name'];
        }
        // 方式二
        if (!isset($_GET['name'])) {
            echo "没收到";
        }else{
            echo $_GET['name'];
        }

    2.$_POST:通过http post方式给服务器传送的信息,会被封装在$_POST超全局数组中

    基本用法

    1. 通过表单传送信息给服务器推荐使用post。有些信息必须使用post,比如上传文件

    demo2.php

    <!DOCTYPE html>
    <html>
    <head>
        <title>zhuce</title>
    </head>
    <body>
    <h1>用户注册</h1>
    <form action='b.php' method="post">
        用户名:<input type="text" name="username"/><br/>
        密码:<input type="password" name="password"/><br/>
        性别:<input type="radio" name="sex" value="man"/><input type="radio" name="sex" value="woman" checked />女<br/>
        <!-- 注意:复选框要在name后面加[],表示接收的是一个数组 -->
        你喜欢什么<input type="checkbox" name="hobby[]" value="唱歌">唱歌
        <input type="checkbox" name="hobby[]" value="跳舞">跳舞
        <input type="checkbox" name="hobby[]" value="看书">看书
        <input type="checkbox" name="hobby[]" value="爬山">爬山
        <input type="checkbox" name="hobby[]" value="游泳">游泳<br/>
        个人介绍:<textarea rows="10" cols="30" name="intro"></textarea><br/>
        您选择的图片:<input type="file" name="file">
        <input type="submit" value="提交"><br/>
    </form>
    </body>
    </html>

    b.php

    <?php
        echo "<pre>";
        echo print_r($_POST);
        echo "</pre>";
        echo "您的爱好是:";
        foreach ($_POST['hobby'] as $key => $value) {
            echo "$value";
            //end 判断一个数组中的最后一个数
            if ($value!=end($_POST['hobby'])) {
                echo ",";
            }
        }
        echo "<br/>您的个人介绍是:".$_POST['intro'];
    
    ?>
    结果:
        Array
    // (
    //     [username] => root
    //     [password] => 123456
    //     [sex] => woman
    //     [hobby] => Array
    //         (
    //             [0] => 唱歌
    //             [1] => 跳舞
    //         )
    
    //     [intro] => 给对方
    //     [file] => VirtualBox.exe
    // )
    // 1
    // 您的爱好是:唱歌,跳舞
    // 您的个人介绍是:给对方

     3.$_REQUEST

    定义:可以接收post、get请求数据还包括$_COOKIE数组

     4.$_SERVER

    定义:包含了http请求行和消息头的信息,还有服务器自己的信息

    基本用法:

    • 获取请求服务器的ip地址(REMOTE_ADDR)
    • 请求服务器端apache的版本号和php版本号(SERVER_SIGNATURE'、SERVER_SOFTWARE、
    • 防盗链行为(HTTP_REFERER

    5.$_ENV

    定义:通过环境方式传递给当前脚本的变量的数组

    该全局数组可以获取全局变量,但默认为禁用状态。可以在php.ini文件中启用

    6.$GLOBALS

    定义:包含了全部变量的全局组合数组

    你定义的全局变量会自动被GLOBALS管理起来

    <?php
        $a=900;
        echo "<pre>";
        echo print_r($GLOBALS);
        echo "</pre>";
    ?>

    结果:

    Array
    (
        [_GET] => Array
            (
                [AA] => QQ
            )
    
        [_POST] => Array
            (
            )
    
        [_COOKIE] => Array
            (
            )
    
        [_FILES] => Array
            (
            )
    
        [_ENV] => Array
            (
            )
    
        [_REQUEST] => Array
            (
                [AA] => QQ
            )
    
        [_SERVER] => Array
            (
                [HTTP_HOST] => localhost
                [HTTP_CONNECTION] => keep-alive
                [HTTP_CACHE_CONTROL] => max-age=0
                [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36
                [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
                [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
                [HTTP_ACCEPT_ENCODING] => gzip, deflate, br
                [HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.8
                [PATH] => C:ProgramDataOracleJavajavapath;C:Python27;C:Program Files (x86)GoogleChromeApplication;C:Python27Scripts;C:Program Files (x86)GoogleChromeApplication;C:WindowsSystem32;D:Program Files (x86)Gitcmd;D:Program Files (x86)Gitmingw32in;D:Program Files (x86)Gitusrin;%JAVA_HOME%;D:apache-jmeter-3.2in;C:Windowssystem32configsystemprofileAppDataLocalMicrosoftWindowsApps
                [SystemRoot] => C:Windows
                [COMSPEC] => C:Windowssystem32cmd.exe
                [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
                [WINDIR] => C:Windows
                [SERVER_SIGNATURE] => 
    Apache/2.4.27 (Win64) PHP/5.6.31 Server at localhost Port 80
    
    
                [SERVER_SOFTWARE] => Apache/2.4.27 (Win64) PHP/5.6.31
                [SERVER_NAME] => localhost
                [SERVER_ADDR] => ::1
                [SERVER_PORT] => 80
                [REMOTE_ADDR] => ::1
                [DOCUMENT_ROOT] => D:/wamp64/www
                [REQUEST_SCHEME] => http
                [CONTEXT_PREFIX] => 
                [CONTEXT_DOCUMENT_ROOT] => D:/wamp64/www
                [SERVER_ADMIN] => wampserver@wampserver.invalid
                [SCRIPT_FILENAME] => D:/wamp64/www/server.php
                [REMOTE_PORT] => 63231
                [GATEWAY_INTERFACE] => CGI/1.1
                [SERVER_PROTOCOL] => HTTP/1.1
                [REQUEST_METHOD] => GET
                [QUERY_STRING] => AA=QQ
                [REQUEST_URI] => /server.php?AA=QQ
                [SCRIPT_NAME] => /server.php
                [PHP_SELF] => /server.php
                [REQUEST_TIME_FLOAT] => 1512969105.181
                [REQUEST_TIME] => 1512969105
            )
    
        [GLOBALS] => Array
     *RECURSION*
        [a] => 900
    )
    1
  • 相关阅读:
    微信分享接口
    MySQL的语句执行顺序
    C++类内存分布
    static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
    c++内存中字节对齐问题详解
    msyql中子查询IN,EXISTS,ANY,ALL,SOME,UNION介绍
    使用valgrind检查内存
    GDB调试教程
    Linux一些经典书籍
    C++编程语言学习资料
  • 原文地址:https://www.cnblogs.com/8013-cmf/p/8012571.html
Copyright © 2020-2023  润新知