A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谁是谁@ 初级黑马   /  2019-5-31 13:10  /  778 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

GET请求

GET从字面上理解为'获取',通常用于获取服务端的数据。

常见的发起GET请求的方式

地址栏访问
src/href
表单

GET方式提交数据的格式

格式:index.php?userName=jack&password=123
特别注意:参数名与参数值之间没有空格
参数值不需要使用单双引号引起来
GET方式提交数据的特点:


get方式在url后面拼接参数,只能以文本的形式传递数据
传递的数据量小,4KB左右(不同浏览器会有差异)
安全性低,会将数据显示在地址栏
速度快,通常用于对安全性要求不高的请求


action:就是提交的目标地址$_SERVER["PHP_SELF"]
例如:<form action="<?php echo $_SERVER["PHP_SELF"] ?>"</form>

PHP 中有三个超全局变量专门用来获取表单提交内容:
$_GET:用于获取以 GET 方式提交的内容,更标准的说法:接收 URL 地址问号参数中的数据
$_POST:用于获取以 POST 方式提交的内容,更标准的说法:接收 请求体 中的数据
$_REQUEST:用于获取 GET 或 POST 方式提交的内容

   复选按钮

   如果需要同时提交多个选中项,可以在 name 属性后面 跟上 []
   最终提交到服务端,通过 $_POST 接收到的是一个索引数组。

表单注意事项
form 表单数据的编码类型由enctype决定,默认为application/x-www-form-urlencoded方式编码。文件上传时属性值必须设置为multipart/form-data
application/x-www-form-urlencoded:会把表单中发送的数据编码为名称/值对,标准编码格式
multipart/form-data,这个是专门用来传输特殊类型数据的,比如文件、mp3
数据提交方式:POST方式
文件域:<input type=file” name=”属性值”/>



$_FILES数组详解

type 属性为 file 的 input 元素可以通过表单提交文件(上传文件),服务端 PHP 可以通过 $_FILES 获取上传的文件信息。

文件上传的完整步骤

设计表单
接收数据:判断$_FILES是否为空
判断错误:$_FILES[‘myFile’][‘error’].出错提示错误信息
此时文件在临时路径,如果需要将上传后的文件移动到某个指定位置,需要使用move_uploaded_file()函数移动到网站永久路径:
move_upload_file(临时路径$_FILES[‘myFile’][‘tmp_name],永久路径);  

应用场景
设置响应文件类型
header('Content-Type: text/css');
常见的 HTTP MIME type:text/css text/html text/plain applcation/javascript application/json
重定向(跳转到其他网页)
header('Location: https://www.baidu.com');
数组(重要)
PHP 中数组大致可以分为两类:
索引数组
与 JavaScript 中的数组基本一致
<?php
// 定义一个索引数组
$arr = array(1, 2, 3, 4, 5);
var_dump($arr);

// PHP 5.4 以后定义的方式可以用 `[]`
$arr2 = [1, 2, 3, 4, 5];
var_dump($arr2);
关联数组
有点类似于 JavaScript 中的对象

<?php
// 注意:键只能是`integer`或者`string`
$arr = array('key1' => 'value1', 'key2' => 'value2');
var_dump($arr);

// PHP 5.4 以后定义的方式可以用 `[]`
$arr2 = ['key1' => 'value1', 'key2' => 'value2'];
var_dump($arr2);
数据类型转换
参考:http://php.net/manual/zh/language.types.type-juggling.php
<?php
$str = '132';
// 将一个内容为数字的字符串强制转换为一个整形的数字
$num = (int)$str;
// 将一个数字强制转换为布尔值
$flag = (bool)$num;


isset($xx): 判断变量$xx有值(不是null的值),如果有,则返回true,否则返回false
            //     只有两个情况是空:
            //     1,该变量不存在(从未定义过)
            //     2,该变量的值为null(一个被unset掉的变量也是null)
            // empty($xx):判断变量$xx是否有空的数据值,如果是空的,则返回true,否则返回false
            //     只有以下情况是空的(即empty):
            //         未定义的变量,  null, 0, 0.0,  "",  "0",  false,  array(),

            // 问:
            //     isset( "0" ) >>>> true
            //     isset(  false ) >>> true


总结: 局部作用域中使用全局变量的方法:
        //  1, 在局部使用global关键字定义一个跟全局遍历同名的变量 : global $xxx;       //xxx 代表某个全局变量名
        //  2,在局部直接使用$GLOBALS超全局变量来使用对应全局变量:  $GLOBALS['xxx'];   //xxx 代表某个全局变量名

修改全局变量两种方式
<?php
    $top=50;
    function foo(){
          // 声明在当前作用域中获取全局作用域中的 `$top`
        global $top;
        $sub=60;
        echo $top;
    }
    foo();
    echo '<hr>';
    $one=100;
    function fo(){
          // 声明在当前作用域中获取全局作用域中的 `$one`
        $GLOBALS['one'];
    }
    fo();
    echo $one;
    ?>

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马