1. header()
header(string $string, bool $replace = true, int $response_code = ?): void
header() 是 PHP 系统函数,用于向客户端发送原始的 HTTP 响应报文头。
请注意 header() 必须在任何实际输出之前调用,不管是普通的 HTML 标签,还是文件或 PHP 输出的空行,空格。
header() 函数常用功能:
1)设置文档类型及编码
// header("HTTP/1.1 404 Not Found");
// header("HTTP/1.1 200 OK");
header("content-type:text/html;charset=utf8");
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类型 |
application/pdf | pdf文档类型 | |
.mp3 | audio/mp3 | mp3音频文件类型 |
.mp4 | video/mpeg4 | mp4视频文件类型 |
.avi | video/avi | avi视频文件类型 |
2)页面重定向
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;
- 内嵌变量<br />PHP 中.可以通过在双引号字符串中 使用 `{ }`来限定变量的使用,防止字符串与变量名混淆.
```php
$v = 7.2;
echo "PHP {$v}";
echo "<br>";
// 也不会展开拼接数组中的内容
$arr = array(1,2,3,4,5);
echo "Array: {$arr}";
echo "<br>";
// 也不会展开拼接数组中的内容
$strs = array("aa","bb","cc");
var_dump("Array: {$strs}")
3. PHP表单处理
表单是 PHP 与 Web 页面交互的方法之一,而表单提交数据有两种请求方式,即 GET 请求方式和 POST 请求方式。
针对于表单的两种提交方式, PHP 提供了三个全局变量,分别为 _POST、$_REQUEST,用于获得表单提交的数据。
4.请求参数
http get请求方式 ,会将请求数据,以键值对的形式,拼接到URL后,服务器接收之后,可以获取客户端提供的数据
http://www.baidu.com/?username=tom&passwd=123123
// http://www.baidu.com/ 请求的主机地址
// ? 连接符, 表示后面是请求时携带的数据, 也称为查询参数 / 查询字符串 (Query String)
// username=tom&passwd=123123 查询字符串,以键值对形式表示 key=value
// & 查询字符串中,多个键值对,使用 & 进行接连
5. $_GET
$变量 = $_GET["表单元素名"];
$_GET 是 一个数组类型变量, 用于获得表单 GET 请求方式提交的数据。
通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组。
注意:该数组不仅仅对 method 为 GET 的请求生效,而是会针对所有带 query string 的请求。
示例:
index.html 文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- HTML 页面中的表单,用来收集数据,并发送给服务器的test.php接口进行处理 -->
<form action="login.php" method="GET">
<p>姓名: <input type="text" name="username" id="n"></p>
<p>密码: <input type="password" name="passwd" id="p"></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
login.php 文件
<?php
// 向客户端发送响应头信息
header("Content-Type:text/html;charset=utf-8");
// 获取客户端提交的查询参数数据
$username = $_GET["username"];
$passwd = $_GET["passwd"];
echo "登陆成功";
echo "<br>";
echo "登陆用户名为:{$username}";
echo "<br>";
echo "登陆密码为:{$passwd}";
?>
6. $_POST
$变量 = $_POST["表单元素名"];
$_POST 用于获得表单 POST 请求方式提交的数据。
当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded
或 multipart/form-data
时,会将变量以关联数组形式传入当前脚本。
示例
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- HTML 页面中的表单,用来收集数据,并发送给服务器的test.php接口进行处理 -->
<form action="login.php" method="POST">
<!-- 在post请求中,也可以在请求地址中添加查询字符串,也可以通过 $_GET 获取,但并不是 Get请求 -->
<!-- <form action="test.php?test=testestestestest" method="POST"> -->
<p>姓名: <input type="text" name="username" id="n"></p>
<p>密码: <input type="password" name="passwd" id="p"></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
login.php
<?php
// 向客户端发送响应头信息
header("Content-Type:text/html;charset=utf-8");
// 获取客户端提交的查询参数数据
$username = $_POST["username"];
$passwd = $_POST["passwd"];
echo "登陆成功";
echo "<br>";
echo "登陆用户名为:{$username}";
echo "<br>";
echo "登陆密码为:{$passwd}";
echo "<br>";
echo "POST方式提交时,携带的查询参数字符串:{$_GET['test']}"
?>
7. $_REQUEST
$变量 = $_REQUEST["表单元素名"];
$_REQUEST 用于获得表单任何请求方式提交的数据。
示例
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- HTML 页面中的表单,用来收集数据,并发送给服务器的test.php接口进行处理 -->
<!-- GET 方式发起请求 -->
<!-- <form action="test.php" method="get"> -->
<!-- POST 方式发起请求 -->
<!-- <form action="test.php" method="POST"> -->
<!-- 在post请求中,也可以在请求地址中添加查询字符串,也可以通过 $_GET 获取,但并不是 Get请求 -->
<form action="login.php?test=testestestestest" method="POST">
<p>姓名: <input type="text" name="username" id="n"></p>
<p>密码: <input type="password" name="passwd" id="p"></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
login.php
<?php
// 向客户端发送响应头信息
header("Content-Type:text/html;charset=utf-8");
// 获取客户端提交的查询参数数据
$username = $_REQUEST["username"];
$passwd = $_REQUEST["passwd"];
echo "登陆成功";
echo "<br>";
echo "登陆用户名为:{$username}";
echo "<br>";
echo "登陆密码为:{$passwd}";
echo "<br>";
echo "POST方式提交时,携带的查询参数字符串:{$_REQUEST['test']}"
?>