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;
?> |
|