• PHP中的预定义超全局数组


    • 定义

    超全局变量,是在全部作用域中始终可用的内置变量。

    PHP中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。

    在函数或方法中无需执行 global $variable 来访问它们。

    使编写程序更方便快捷。

    • 内容

    $_GET

    $_POST

    $_REQUEST

    $_SERVER

    $_COOKIE

    $_SESSION

    $_GLOBALS

    $_ENV

    $_FILES

    • $_GET

    通过URL参数传递给当前脚本的变量的数组。

    基本用法:1、客户机(浏览器)通过超链接<a></a>传送信息给服务器;

           2、客户机(浏览器)通过表单form传送信息给服务器(但推荐表单提交用post方法);

           3、客户机(浏览器)通过header提交。

    案例1:超链接中用GET方法传送数据

    get.php:

    1 <?php
    2     //超链接提交方式为get
    3     echo "<a href='get1.php?city=beijing&name=liLei'>超链接get方法传送数据</a>";
    4 ?>

    get1.php:

    1 <?php
    2     echo "<pre>";
    3     print_r($_GET);
    4     echo "</pre>";
    5     echo "<br/>".$_GET['city']; //通过下标名来取某个值
    6 ?>

    结果如下:

    案例2:IE6(及其更低级版本)的奇数中文乱码问题

    get.php:

    1 <?php
    2     //超链接提交方式为get
    3     //编码
    4     $str=urlencode("张家口");
    5     echo "<a href='get1.php?city=".$str."&name=liLei'>超链接get方法传送数据</a>";
    6 ?>

    get1.php

     1 <?php
     2     echo "<pre>";
     3     print_r($_GET);
     4     echo "</pre>";
     5     //判断是否收到值,用empty函数
     6     if(empty($_GET['city'])){
     7         echo "没有收到值";
     8     }else{
     9         //解码
    10         echo "<br/>".urldecode($_GET['city']);
    11     }
    12 ?>

    结果如下:

    案例3:表单中用get方式提交的信息

    <form action="xx.php" method="get">

    ......

    </form>

    案例4:header默认用get方法提交

    <?php

      header("Location: a.php?name=xiaoMing");

    ?>

    •  $_POST

    $_POST:通过HTTP POST方法传递给当前脚本的变量的数组。

    基本用法:客户机(浏览器)通过表单用post方式传送信息给服务器,

          各种表单输入项数据的获取:text、password、radio、checkbox、file、select、textarea、hidden、image、button。

    注意:表单中有些数据的提交必须使用post,比如上传文件。

    案例:表单用post方式提交

    post.html:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="utf-8"/>
     5     <title>post方法提交表单信息</title>
     6 </head>
     7 <body>
     8     <form action="post1.php" method="post">
     9         <!--文本型-->
    10         用户名:<input type="text" name="userName"/><br/><br/>
    11         <!--密码型-->
    12         密码:<input type="password" name="pwd"/><br/><br/>
    13         <!--单选框-->
    14         性别:<input type="radio" name="sex" id="female" value="female"/><label for="female"></label>
    15         <input type="radio" name="sex" id="male" value="male"/><label for="male"></label><br/><br/>
    16         <!--复选框-->
    17         爱好:<input type="checkbox" name="hobby[]" value="唱歌" id="sing"/><label for="sing">唱歌</label>
    18         <input type="checkbox" name="hobby[]" value="读书" id="read"/><label for="read">读书</label>
    19         <input type="checkbox" name="hobby[]" value="健身" id="sport"/><label for="sport">健身</label><br/><br/>
    20         <!--下拉框-->
    21         所在地:<select name="site">
    22         <option value="河北">河北</option>
    23         <option value="北京">北京</option>
    24         <option value="天津">天津</option>
    25         </select><br/><br/>
    26         <!--文件-->
    27         照片:<input type="file" name="photo"/><br/><br/>
    28         <!--文本域-->
    29         自我介绍:<textarea name="selfIntro" rows="10" clos="30"></textarea><br/><br/>
    30         <!--提交与重置-->
    31         <input type="submit" value="注册"/>
    32         <input type="reset" value="重置"/>
    33     </form>
    34 </body>
    35 </html>

    post1.php:

     1 <?php
     2     echo "<pre>";
     3     print_r($_POST);
     4     echo "</pre>";
     5     //按键名取$_POST中的内容
     6     $name=$_POST['userName'];
     7     echo "名字:".$name."<br/>";
     8     $hobbies=$_POST['hobby'];
     9     echo "爱好:";
    10     foreach($hobbies as $key => $value){
    11         echo $value."&nbsp;";
    12     }
    13 ?>

    结果如下:

    注意1、要想获取复选框选中的全部的值,需要把name写成数组形式,如下:

         <input type="checkbox" name="hobby[]" value="唱歌" id="sing"/>

         2、这里文件file信息只能取得文件名。

    •  $_REQUEST

    默认情况下包含了$_GET,$_POST和$_COOKIE的数组。

    注意:由于$_REQUEST中的变量通过GET、POST和COOKIE输入机制传递给脚本文件,因此可以被远程用户篡改而并不可信。

    所以尽量不要使用$_REQUEST,如果不确定是GET提交还是POST提交,可以用如下写法:

    if($_SERVER['REQUEST_METHOD']=="GET"){

      $_GET['XX'];

    }

    if($_SERVER['REQUEST_METHOD']=="POST"){

      $_POST['XX'];

    }

    •  $_SERVER

    $_SERVER:其中主要包含了HTTP请求行和消息头的信息,还有服务器相关的一些信息。

     取出$_SERVER中内容的程序:

    1 <?php
    2     echo "<pre>";
    3     print_r($_SERVER);
    4     echo "</pre>";
    5 ?>

    结果如下:

    其中:1、请求该页面的客户机IP地址——REMOTE_ADDR

         2、服务器端apache和php版本号——SERVER_SOFTWARE

         3、决定get/post方法接收数据——REQUEST_METHOD

    • $_ENV

    $_ENV:用于获取服务器端环境信息。

    注意:默认情况下不能使用$_ENV,你会得到空值,这是出于对安全的考虑。

        如果希望使用,则需要修改配置文件php.ini中

        variables_order="EGPCS"

       但是在开发环境下,我们不建议这样配置。

    结果如下:

  • 相关阅读:
    内存问题定位与解决
    CPU问题定位与解决
    数据库优化案例——————某市中心医院HIS系统
    系统隐形杀手——阻塞与等待
    SQL Server常见问题介绍及快速解决建议
    CVTE实习感想--2014.10秋招
    Spring AOP的理解
    一些Java面试问题
    举几个大数据的例子
    Java中乐观锁与悲观锁的实现
  • 原文地址:https://www.cnblogs.com/seaBiscuit0922/p/5951089.html
Copyright © 2020-2023  润新知