1. header()

  1. header(string $string, bool $replace = true, int $response_code = ?): void

header() 是 PHP 系统函数,用于向客户端发送原始的 HTTP 响应报文头。

请注意 header() 必须在任何实际输出之前调用,不管是普通的 HTML 标签,还是文件或 PHP 输出的空行,空格。

header() 函数常用功能:

1)设置文档类型及编码

  1. // header("HTTP/1.1 404 Not Found");
  2. // header("HTTP/1.1 200 OK");
  3. header("content-type:text/html;charset=utf8");
  4. echo "你好";
文件扩展名 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视频文件类型

2)页面重定向

  1. header("location:http://www.baidu.com");

2. 字符串拼接

  • .运算符
    通过 点运算符,可以将字符串和另一个值进行拼接 ,另一个值可以是字符串,可以是其它类型数据
    如果是数组,会弹出一个警告,并且拼接内容 只有 Array, 并不会拼接数据中的内容 .
    ```php echo “hello” . “ world”; echo “
    “;

echo “PHP” . 7.2; echo “
“;

// 拼接时, 连接符两侧必须要有空格 // echo 100.”hello”; echo “
“;

// 不会拼接数组中的内容 $arr = array(1,2,3,4,5); echo “Array:” . $arr; echo “
“;

// 不会拼接数组中的内容 $strs = array(“aa”,”bb”,”cc”); echo “Array:” . $strs;

  1. - 内嵌变量<br />PHP 中.可以通过在双引号字符串中 使用 `{ }`来限定变量的使用,防止字符串与变量名混淆.
  2. ```php
  3. $v = 7.2;
  4. echo "PHP {$v}";
  5. echo "<br>";
  6. // 也不会展开拼接数组中的内容
  7. $arr = array(1,2,3,4,5);
  8. echo "Array: {$arr}";
  9. echo "<br>";
  10. // 也不会展开拼接数组中的内容
  11. $strs = array("aa","bb","cc");
  12. var_dump("Array: {$strs}")

3. PHP表单处理

表单是 PHP 与 Web 页面交互的方法之一,而表单提交数据有两种请求方式,即 GET 请求方式和 POST 请求方式。

针对于表单的两种提交方式, PHP 提供了三个全局变量,分别为 课上3 - 图1_POST、$_REQUEST,用于获得表单提交的数据。

4.请求参数

http get请求方式 ,会将请求数据,以键值对的形式,拼接到URL后,服务器接收之后,可以获取客户端提供的数据

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

5. $_GET

$变量 = $_GET["表单元素名"];

$_GET 是 一个数组类型变量, 用于获得表单 GET 请求方式提交的数据。

通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组。

注意:该数组不仅仅对 method 为 GET 的请求生效,而是会针对所有带 query string 的请求

  • 示例:

    • index.html 文件

      1. <!DOCTYPE html>
      2. <html lang="en">
      3. <head>
      4. <meta charset="UTF-8">
      5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
      6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
      7. <title>Document</title>
      8. </head>
      9. <body>
      10. <!-- HTML 页面中的表单,用来收集数据,并发送给服务器的test.php接口进行处理 -->
      11. <form action="login.php" method="GET">
      12. <p>姓名: <input type="text" name="username" id="n"></p>
      13. <p>密码: <input type="password" name="passwd" id="p"></p>
      14. <p><input type="submit" value="提交"></p>
      15. </form>
      16. </body>
      17. </html>
    • login.php 文件

      1. <?php
      2. // 向客户端发送响应头信息
      3. header("Content-Type:text/html;charset=utf-8");
      4. // 获取客户端提交的查询参数数据
      5. $username = $_GET["username"];
      6. $passwd = $_GET["passwd"];
      7. echo "登陆成功";
      8. echo "<br>";
      9. echo "登陆用户名为:{$username}";
      10. echo "<br>";
      11. echo "登陆密码为:{$passwd}";
      12. ?>

6. $_POST

$变量 = $_POST["表单元素名"];

$_POST 用于获得表单 POST 请求方式提交的数据。

当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencodedmultipart/form-data 时,会将变量以关联数组形式传入当前脚本。

  • 示例

    • index.html

      1. <!DOCTYPE html>
      2. <html lang="en">
      3. <head>
      4. <meta charset="UTF-8">
      5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
      6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
      7. <title>Document</title>
      8. </head>
      9. <body>
      10. <!-- HTML 页面中的表单,用来收集数据,并发送给服务器的test.php接口进行处理 -->
      11. <form action="login.php" method="POST">
      12. <!-- 在post请求中,也可以在请求地址中添加查询字符串,也可以通过 $_GET 获取,但并不是 Get请求 -->
      13. <!-- <form action="test.php?test=testestestestest" method="POST"> -->
      14. <p>姓名: <input type="text" name="username" id="n"></p>
      15. <p>密码: <input type="password" name="passwd" id="p"></p>
      16. <p><input type="submit" value="提交"></p>
      17. </form>
      18. </body>
      19. </html>
    • login.php

      1. <?php
      2. // 向客户端发送响应头信息
      3. header("Content-Type:text/html;charset=utf-8");
      4. // 获取客户端提交的查询参数数据
      5. $username = $_POST["username"];
      6. $passwd = $_POST["passwd"];
      7. echo "登陆成功";
      8. echo "<br>";
      9. echo "登陆用户名为:{$username}";
      10. echo "<br>";
      11. echo "登陆密码为:{$passwd}";
      12. echo "<br>";
      13. echo "POST方式提交时,携带的查询参数字符串:{$_GET['test']}"
      14. ?>

7. $_REQUEST

$变量 = $_REQUEST["表单元素名"];

$_REQUEST 用于获得表单任何请求方式提交的数据。

  • 示例

    • index.html

      1. <!DOCTYPE html>
      2. <html lang="en">
      3. <head>
      4. <meta charset="UTF-8">
      5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
      6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
      7. <title>Document</title>
      8. </head>
      9. <body>
      10. <!-- HTML 页面中的表单,用来收集数据,并发送给服务器的test.php接口进行处理 -->
      11. <!-- GET 方式发起请求 -->
      12. <!-- <form action="test.php" method="get"> -->
      13. <!-- POST 方式发起请求 -->
      14. <!-- <form action="test.php" method="POST"> -->
      15. <!-- 在post请求中,也可以在请求地址中添加查询字符串,也可以通过 $_GET 获取,但并不是 Get请求 -->
      16. <form action="login.php?test=testestestestest" method="POST">
      17. <p>姓名: <input type="text" name="username" id="n"></p>
      18. <p>密码: <input type="password" name="passwd" id="p"></p>
      19. <p><input type="submit" value="提交"></p>
      20. </form>
      21. </body>
      22. </html>
    • login.php

      1. <?php
      2. // 向客户端发送响应头信息
      3. header("Content-Type:text/html;charset=utf-8");
      4. // 获取客户端提交的查询参数数据
      5. $username = $_REQUEST["username"];
      6. $passwd = $_REQUEST["passwd"];
      7. echo "登陆成功";
      8. echo "<br>";
      9. echo "登陆用户名为:{$username}";
      10. echo "<br>";
      11. echo "登陆密码为:{$passwd}";
      12. echo "<br>";
      13. echo "POST方式提交时,携带的查询参数字符串:{$_REQUEST['test']}"
      14. ?>