header()函数

header() 是 PHP 系统函数,用于向客户端发送原始的 HTTP 报头。
请注意 header() 必须在任何实际输出之前调用,不管是普通的 HTML 标签,还是文件或 PHP 输出的空行,空格。
header() 函数常用功能:
1)设置文档类型及编码
2)页面重定向

1)设置文档类型及编码

设置文档类型以及编码,这将决定浏览器将以什么形式、什么编码来显示当前页面。
语法格式:
header(“content-type:文档类型; charset=字符集编码”);

  1. <?php
  2. header("content-type:text/html;charset=utf-8");
  3. echo "<h2>设置文档类型及编码<h2>";

代码讲解
设置文档类型及编码
header(“content-type:text/html;charset=utf-8”);
设置当前页面文档类型为 text/html,页面字符集编码为 utf-8。
注意:
1、在 header() 函数之前,不能有任何形式的输出。
2、纯 php 代码文件中,“?>”可以省略不写。
常用文档类型:

文件扩展名 Content-Type(Mime-Type) 描述
.txt text/plain 纯文本类型
.html text/html 文本的HTML类型
.xml text/xml 文本的XML类型
.jpg、.jpeg image/jpeg jpeg格式的图像类型
.gif image/gif gif格式的图像类型
.png image/png png格式的图像类型
.ppt application/vnd.ms-powerpoint microsoft powerpoint类型
.pdf application/pdf pdf文档类型
.mp3 audio/mp3 mp3音频文件类型
.mp4 video/mpeg4 mp4视频文件类型
.avi video/avi avi视频文件类型

注:文档类型,除了上面列举的以外还有很多,在此就不再一一列举了。
常用字符集编码:

字符集编码 语言 占用空间
gb2312 简体中文 一个汉字占用两个字节存储空间
gbk 简繁体中文 一个汉字占用两个字节存储空间
utf-8 各国文字 一个汉字占用三个字节存储空间

2)页面重定向

页面重定向,用于实现浏览器页面的自动跳转。
语法格式:
header(“location : 跳转地址”);

  1. <?php
  2. header("location:http://www.baidu.com");

代码讲解
页面重定向
header(“location:http://www.baidu.com“);
通过header()实现页面跳转,跳转地址为百度网站。

字符串拼接

字符串拼接,可以将两个或多个字符串拼接成一个新的字符串。
PHP中,常用拼接字符串的方法,有以下两种

1、连接运算符“.”

连接运算符,可以将运算符左右两侧的字符串,拼接成一个新的字符串。
通过 点运算符,可以将字符串和另一个值进行拼接 ,另一个值可以是字符串,可以是其它类型数据
如果是数组,会弹出一个警告,并且拼接内容 只有 Array, 并不会拼接数据中的内容 .

  1. <?php
  2. header("content-type:text/html;charset=utf-8");
  3. $userName = "张小明";
  4. $age = 15;
  5. //通过连接运算符的方式,拼接字符串
  6. echo "姓名为:".$userName.",年龄为:".$age; //输出结果:姓名为:张小明,年龄为:15
  1. <?php
  2. echo "hello" . " world";
  3. echo "<br>";
  4. echo "PHP" . 7.2;
  5. echo "<br>";
  6. // 拼接时, 连接符两侧必须要有空格
  7. // echo 100."hello";
  8. echo "<br>";
  9. // 不会拼接数组中的内容
  10. $arr = array(1,2,3,4,5);
  11. echo "Array:" . $arr;
  12. echo "<br>";
  13. // 不会拼接数组中的内容
  14. $strs = array("aa","bb","cc");
  15. echo "Array:" . $strs;
  16. ?>

代码讲解
拼接字符串
echo “姓名为:”.$userName.”,年龄为:”.$age;
通过连接运算符,拼接字符串。

2、内嵌变量

PHP允许我们在双引号的字符串中,通过嵌入变量名的方式,来拼接字符串。

  1. <?php
  2. header("content-type:text/html;charset=utf-8");
  3. $userName = "张小明";
  4. $age = 15;
  5. //通过内嵌变量的方式,拼接字符串
  6. echo "姓名为:{$userName},年龄为:{$age}<br/>";//输出结果:姓名为:张小明,年龄为:15
  7. echo "姓名为: $userName ,年龄为: $age <br/>";//输出结果:姓名为: 张小明 ,年龄为: 15

代码讲解
1、拼接字符串
echo “姓名为:{$userName},年龄为:{$age}
“;
echo “姓名为: $userName ,年龄为: $age
“;
通过内嵌变量,拼接字符串。
注意:内嵌变量在不使用 {} 时,变量名可能会与其他字符发生混淆,为了避免这种情况,我们可以在变量名的前后添加空格。

PHP表单处理

表单是 PHP 与 Web 页面交互的方法之一,而表单提交数据有两种请求方式,即 GET 请求方式和 POST 请求方式。
针对于表单的两种提交方式, PHP 提供了三个全局变量,分别为 $_GET、$_POST、$_REQUEST,用于获得表单提交的数据。
请求参数
http get请求方式 ,会将请求数据,以键值对的形式,拼接到URL后,服务器接收之后,可以获取客户端提供的数据

  1. <?php
  2. http://www.baidu.com/?username=tom&passwd=123123
  3. // http://www.baidu.com/ 请求的主机地址
  4. // ? 连接符, 表示后面是请求时携带的数据, 也称为查询参数 / 查询字符串 (Query String)
  5. // username=tom&passwd=123123 查询字符串,以键值对形式表示 key=value
  6. // & 查询字符串中,多个键值对,使用 & 进行接连
  7. ?>

1、$_GET

$_GET 用于获得表单 GET 请求方式提交的数据。
$_GET 是 一个数组类型变量, 用于获得表单 GET 请求方式提交的数据。
通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组。
注意:该数组不仅仅对 method 为 GET 的请求生效,而是会针对所有带 query string 的请求**。

语法格式:
$变量 = $_GET[“表单元素名”];
建立一个 GET 请求方式的表单页面,名称为 index.php,代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>GET方式的表单</title>
  5. <meta charset="utf-8" />
  6. </head>
  7. <body>
  8. <form name="frm" method="get" action="check.php">
  9. 登陆名称:<input type="text" name="userName" size="20" /><br/>
  10. 登陆密码:<input type="password" name="password" size="20" /><br/>
  11. <input type="submit" value="登陆" />
  12. </form>
  13. </body>
  14. </html>

在 index.php 的同级目录下,建立 check.php 文件,代码如下:

  1. <?php
  2. header("content-type:text/html;charset=utf-8");
  3. //获得GET表单提交的数据
  4. $userName = $_GET["userName"];
  5. $password = $_GET["password"];
  6. //输出接收到的表单数据
  7. echo "接收到的登陆名称:{$userName}<br/>";
  8. echo "接收到的登陆密码:{$password}<br/>";

代码讲解
1、获得表单数据
$userName = $_GET[“userName”];
$password = $_GET[“password”];
通过 $_GET,获得表单 GET 请求方式提交的数据。
$_GET[“userName”]:获得表单提交的 userName 值,userName 是表单元素 name 名称。
$_GET[“password”]:获得表单提交的 password 值,password 是表单元素 name 名称。

2、$_POST

$_POST 用于获得表单 POST 请求方式提交的数据。
语法格式:
$变量 = $_POST[“表单元素名”];
建立一个 POST 请求方式的表单页面,名称为 index.php,页面代码与 GET 请求方式的表单页面几乎一样,只不过把

标签的 method 值设置为 post,代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>POST方式的表单</title>
  5. <meta charset="utf-8" />
  6. </head>
  7. <body>
  8. <form name="frm" method="post" action="check.php">
  9. 登陆名称:<input type="text" name="userName" size="20" /><br/>
  10. 登陆密码:<input type="password" name="password" size="20" /><br/>
  11. <input type="submit" value="登陆" />
  12. </form>
  13. </body>
  14. </html>

check.php文件内容如下:

  1. <?php
  2. header("content-type:text/html;charset=utf-8");
  3. //获得POST表单提交的数据
  4. $userName = $_POST["userName"];
  5. $password = $_POST["password"];
  6. //输出接收到的表单数据
  7. echo "接收到的登陆名称:{$userName}<br/>";
  8. echo "接收到的登陆密码:{$password}<br/>";

代码讲解
1、获得表单数据
$userName = $_POST[“userName”];
$password = $_POST[“password”];
通过 $_POST,获得表单 POST 请求方式提交的数据。
$_POST[“userName”]:获得表单提交的 userName 值,userName 是表单元素 name 名称。
$_POST[“password”]:获得表单提交的 password 值,password 是表单元素 name 名称。

3、$_REQUEST

$_REQUEST 用于获得表单任何请求方式提交的数据。
语法格式:
$变量 = $_REQUEST[“表单元素名”];
建立一个表单页面,名称为 index.php,代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>表单</title>
  5. <meta charset="utf-8" />
  6. </head>
  7. <body>
  8. <form name="frm" method="post" action="check.php">
  9. 登陆名称:<input type="text" name="userName" size="20" /><br/>
  10. 登陆密码:<input type="password" name="password" size="20" /><br/>
  11. <input type="submit" value="登陆" />
  12. </form>
  13. </body>
  14. </html>

check.php 文件内容如下:

  1. <?php
  2. header("content-type:text/html;charset=utf-8");
  3. //获得表单提交的数据
  4. $userName = $_REQUEST["userName"];
  5. $password = $_REQUEST["password"];
  6. //输出接收到的表单数据
  7. echo "接收到的登陆名称:{$userName}<br/>";
  8. echo "接收到的登陆密码:{$password}<br/>";

代码讲解
1、获得表单数据
$userName = $_REQUEST[“userName”];
$password = $_REQUEST[“password”];
通过 $_REQUEST,获得表单提交的数据。
$_REQUEST[“userName”]:获得表单提交的 userName 值,userName 是表单元素 name 名称。
$_REQUEST[“password”]:获得表单提交的 password 值,password 是表单元素 name 名称。
注:我们可以尝试着修改 index.php 文件中 标签的 method 属性,让表单以不同的请求方式进行提交,而 check.php 文件的输出结果都是相同的

URL传参

URL 传参也叫问号传参,是 PHP 与 Web 页面交互的方法之一。
URL 传参,模拟表单 GET 请求方式,在页面跳转的过程中,通过 “?” 在 URL 地址中添加参数 ,用于实现跨页面传参的功能。
语法格式:
http://localhost/xxx.php?参数名=参数值&参数名=参数值
建立一个名称为 index.php 的页面,代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>URL传参</title>
  5. <meta charset="utf-8" />
  6. </head>
  7. <body>
  8. <!-- 通过超链接,实现URL传参 -->
  9. <a href="check.php?id=1&name=Tom&age=15">跳转页面</a>
  10. </body>
  11. </html>

代码讲解
1、URL传参
跳转页面
通过超链接,实现 URL 传参功能。
check.php:将要跳转到的页面地址。
?:用于在URL 地址中传递参数。
id=1:URL 中传递的参数。id 是参数名称,1 是参数值。
name=Tom:URL 中传递的参数。name 是参数名称,Tom 是参数值。
age=15:URL 中传递的参数。age 是参数名称,15 是参数值。

在 index.php 页面,鼠标点击“跳转页面”的超链接后,页面会跳转到同级目录下的 check.php 文件,代码如下:

  1. <?php
  2. header("content-type:text/html;charset=utf-8");
  3. //获得URL中的参数
  4. $id = $_GET["id"];
  5. $name = $_GET["name"];
  6. $age = $_GET["age"];
  7. //输出接收到的数据
  8. echo "id:{$id}<br/>";
  9. echo "name:{$name}<br/>";
  10. echo "age:{$age}<br/>";

代码讲解
1、获得URL参数值
$id = $_GET[“id”];
$name = $_GET[“name”];
$age = $_GET[“age”];
通过 $_GET,获得 URL 中的参数值。
$_GET[“id”]:获得 UR L中,参数名称为 id 的参数值。
$_GET[“name”]:获得 URL 中,参数名称为 name 的参数值。
$_GET[“age”]:获得 URL 中,参数名称为 age 的参数值。