数据验证与数据序列化
一、$_SERVER变量:
1、$_SERVER['PHP_SELF']
:当前执行脚本的文件名,与 document root 有关。
2、$_SERVER['GATEWAY_INTERFACE']
:服务器使用的 CGI 规范的版本;例如,“CGI/1.1”。
3、$_SERVER['SERVER_ADDR']
:当前运行脚本所在的服务器的 IP 地址。
4、$_SERVER['SERVER_NAME']
:当前运行脚本所在的服务器的主机名。
5、$_SERVER['SERVER_SOFTWARE']
:服务器标识字符串,在响应请求时的头信息中给出。
6、$_SERVER['SERVER_PROTOCOL']
:请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
7、$_SERVER['REQUEST_METHOD']
:访问页面使用的请求方法;例如,“GET”, “HEAD”,“POST”,“PUT”。
8、$_SERVER['REQUEST_TIME']
:请求开始时的时间戳。从 PHP 5.1.0 起可用。
9、$_SERVER['REQUEST_TIME_FLOAT']
:请求开始时的时间戳,微秒级别的精准度。 自 PHP 5.4.0 开始生效。
10、$_SERVER['QUERY_STRING']
:query string(查询字符串),如果有的话,通过它进行页面访问。
11、$_SERVER['DOCUMENT_ROOT']
:当前运行脚本所在的文档根目录。在服务器配置文件中定义。
12、$_SERVER["REQUEST_SCHEME"]
:服务器通信协议,是http或https。
13、$_SERVER["CONTEXT_PREFIX"]
:前缀。
14、$_SERVER["CONTEXT_DOCUMENT_ROOT"]
:当前脚本所在的文档根目录。
15、$_SERVER['HTTP_ACCEPT']
:当前请求头中 Accept: 项的内容。
16、$_SERVER['HTTP_ACCEPT_ENCODING']
:当前请求头中 Accept-Encoding: 项的内容。
17、$_SERVER["HTTP_COOKIE"]
:浏览器的cookie信息。
18、$_SERVER['HTTP_ACCEPT_LANGUAGE']
:当前请求头中 Accept-Language: 项的内容,如果存在的话。例如:“en”。
19、$_SERVER['HTTP_CONNECTION']
:当前请求头中 Connection: 项的内容,如果存在的话。例如:“Keep-Alive”。
20、$_SERVER["HTTP_UPGRADE_INSECURE_REQUESTS"]
:表示浏览器可读懂服务器发过来的请求。
21、$_SERVER["HTTP_CACHE_CONTROL"]
:表示浏览器是否会缓存这个页面信息。
22、$_SERVER["PATH"]
:当前脚本所在文件系统。
23、$_SERVER["SystemRoot"]
:当前服务器的操作系统。
24、$_SERVER["COMSPEC"]
:指向cmd.exe的路径。
25、$_SERVER["PATHEXT"]
:环境变量设置。
26、$_SERVER["WINDIR"]
:脚本指向的系统目录。
27、$_SERVER['HTTP_HOST']
:当前请求头中 Host: 项的内容。
28、$_SERVER['HTTP_USER_AGENT']
:当前请求头中 User-Agent: 项的内容。
29、$_SERVER['REMOTE_ADDR']
:浏览当前页面的用户的 IP 地址。
30、$_SERVER['REMOTE_PORT']
:用户机器上连接到 Web 服务器所使用的端口号。
31、$_SERVER['SCRIPT_FILENAME']
:当前执行脚本的绝对路径。
32、$_SERVER['SERVER_ADMIN']
:该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。
33、$_SERVER['SERVER_PORT']
:Web 服务器使用的端口。默认值为 “80”。
34、$_SERVER['SCRIPT_NAME']
:包含当前脚本的路径。
35、$_SERVER['REQUEST_URI']
:URI 用来指定要访问的页面。例如 “/index.html”。
代码演示
<?php
echo $_SERVER['PHP_SELF'].'<hr>';
//echo $_SERVER['argv'].'<hr>';
//echo $_SERVER['argc'].'<hr>';
echo $_SERVER['GATEWAY_INTERFACE'].'<hr>';
echo $_SERVER['SERVER_ADDR'].'<hr>';
echo $_SERVER['SERVER_NAME'].'<hr>';
echo $_SERVER['SERVER_SOFTWARE'].'<hr>';
echo $_SERVER['SERVER_PROTOCOL'].'<hr>';
echo $_SERVER['REQUEST_METHOD'].'<hr>';
echo $_SERVER['REQUEST_TIME'].'<hr>';
echo $_SERVER['REQUEST_TIME_FLOAT'].'<hr>';
echo $_SERVER['QUERY_STRING'].'<hr>';
echo $_SERVER['DOCUMENT_ROOT'].'<hr>';
echo $_SERVER["REQUEST_SCHEME"].'<hr>';
echo $_SERVER["CONTEXT_PREFIX"].'<hr>';
echo $_SERVER["CONTEXT_DOCUMENT_ROOT"].'<hr>';
echo $_SERVER['HTTP_ACCEPT'].'<hr>';
//echo $_SERVER['HTTP_ACCEPT_CHARSET'].'<hr>';
echo $_SERVER['HTTP_ACCEPT_ENCODING'].'<hr>';
echo $_SERVER["HTTP_COOKIE"].'<hr>';
echo $_SERVER['HTTP_ACCEPT_LANGUAGE'].'<hr>';
echo $_SERVER['HTTP_CONNECTION'].'<hr>';
echo $_SERVER["HTTP_UPGRADE_INSECURE_REQUESTS"].'<hr>';
echo $_SERVER["HTTP_CACHE_CONTROL"].'<hr>';
echo $_SERVER["PATH"].'<hr>';
echo $_SERVER["SystemRoot"].'<hr>';
echo $_SERVER["COMSPEC"].'<hr>';
echo $_SERVER["PATHEXT"].'<hr>';
echo $_SERVER["WINDIR"].'<hr>';
echo $_SERVER['HTTP_HOST'].'<hr>';
//echo $_SERVER['HTTP_REFERER'].'<hr>';
echo $_SERVER['HTTP_USER_AGENT'].'<hr>';
//echo $_SERVER['HTTPS'].'<hr>';
echo $_SERVER['REMOTE_ADDR'].'<hr>';
//echo $_SERVER['REMOTE_HOST'].'<hr>';
echo $_SERVER['REMOTE_PORT'].'<hr>';
//echo $_SERVER['REMOTE_USER'].'<hr>';
//echo $_SERVER['REDIRECT_REMOTE_USER'].'<hr>';
echo $_SERVER['SCRIPT_FILENAME'].'<hr>';
echo $_SERVER['SERVER_ADMIN'].'<hr>';
echo $_SERVER['SERVER_PORT'].'<hr>';
//echo $_SERVER['SERVER_SIGNATURE'].'<hr>';
//echo $_SERVER['PATH_TRANSLATED'].'<hr>';
echo $_SERVER['SCRIPT_NAME'].'<hr>';
echo $_SERVER['REQUEST_URI'].'<hr>';
//echo $_SERVER['PHP_AUTH_DIGEST'].'<hr>';
//echo $_SERVER['PHP_AUTH_USER'].'<hr>';
//echo $_SERVER['PHP_AUTH_PW'].'<hr>';
//echo $_SERVER['AUTH_TYPE'].'<hr>';
//echo $_SERVER['PATH_INFO'].'<hr>';
//echo $_SERVER['ORIG_PATH_INFO'].'<hr>';
演示效果图:
二、过滤器:
1、filter_list
,返回所支持的过滤器列表
2、filter_has_var(类型,变量)
, 检测是否存在指定类型的变量
- filter_has_var()不检查静态数据,只检查动态提交数据
2.1 INPUT_GET
:GET方式提交
2.2 INPUT_POST
:POST方式提交
2.3 INPUT_SERVER
:服务器变量
2.4 INPUT_COOKIE
:cookie
3、filter_input(类型,变量,过滤器)
, 通过名称获取特定的外部变量,并且可以通过过滤器处理它
3.1 INPUT_GET
:GET方式提交
3.2 INPUT_POST
:POST方式提交
3.3 INPUT_SERVER
:服务器变量
3.4 INPUT_COOKIE
:cookie
<?php
//查看支持的过滤器
echo '<pre>';
print_r(filter_list());
echo '</pre>';
//判断邮箱是否存在
echo filter_has_var(INPUT_GET,'email');
echo '<hr/>';
echo filter_input(INPUT_GET,'email',FILTER_VALIDATE_EMAIL);
echo '<hr/>';
echo filter_input(INPUT_SERVER,'REQUEST_URI');
三、序列化
1、serialize
,序列化对象或数组,并返回一个字符串
2、unserialize
,反序列化,将一个序列化字符串转为数组或对象
<?php
$arr = [2, 3, 1, 9, 4, 5];
//序列化
echo serialize($arr);
//反序列化
print_r(unserialize(serialize($arr)));