博客列表 >01月13日作业:$_SERVER、验证器和数据序列化(反序列化)基本练习

01月13日作业:$_SERVER、验证器和数据序列化(反序列化)基本练习

李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰
李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰原创
2020年01月15日 16:19:39825浏览

作业一

1、$_SERVER[];

例如:echo $_SERVER['EERVER_NAME'];

2、全部变量:

1、PHP_SELF:当前正在执行的脚本的文件名,与document root 有关。
2、argv:传递给该脚本的参数
3、argc:包含传递给程序的 命令行参数的个数
4、GATEWAY_INTERFACE:服务器使用的CGI的规范的版本
5、SERVER_NAME:当前运行脚本所在的服务器 主机名称
6、SERVER_SOFTWARE:服务器标识的字串,在响应的请求时的头部中给出
7、SERVER_PROTOCOL:请求页面时通信协议的名称和版本。例如:”HTTP/1.0”
8、REQUEST_METHOD:访问页面时的请求方法。
9、QUERY_STRING:查询(query)的字符串
10、DOCUMENT_ROOT:当前运行脚本所在的文档根目录,在服务器配置文件中定义
11、HTTP_ACCEPT:当前的请求的Accept:头部内容
12、HTTP_ACCEPT_CHARSET/HTTP_ACCEPT_ENCODING/HTTP_ACCEPT_LANGUAGE:当前请求的头部内容
13、HTTP_CONNECTION:当前请求的connection:头部内容,例如”Keep-Alive”
14、HTTP_HOST:当前请求头中 Host: 项的内容
15、HTTP_REFERER:链接到当前页面的前一页的URL地址
16、HTTP_USER_AGENT:当前请求的user-agent
17、HTTPS:如果通过https访问,则备被设为一个非空值(on),否则返回(off)
18、REMOTE_ADDR:正在浏览当前页面用户的IP地址
19、REMOTE_HOST:正在浏览当前页面用户的主机名
20、REMOTE_PORT:用户链接到服务器时所使用的端口
22、SCRIPT_FILENAME:当前执行脚本的绝对路径
23、SERVER_ADMIN:管理员信息
24、SERVER_PORT:服务器使用的端口
25、SERVER_SIGNATURE:服务器版本信息和虚拟主机名的字符串
26、PATH_TRANSLATED:当前甲苯所在的文件系统(不是文档根目录)的基本路径
27、SCRIPT_NAME:当前脚本路径
28、REQUEST_URI:访问此页面所需的URI。

3、实列效果演示:

1、演示代码

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport"
  6. content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  7. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8. <title>Document</title>
  9. </head>
  10. <body>
  11. </body>
  12. </html>
  13. <?php
  14. //PHP开头的变量
  15. echo $_SERVER['PHP_SELF'].'<br>';
  16. echo $_SERVER['PHP_AUTH_DIGEST'].'<br>';
  17. echo $_SERVER['PHP_AUTH_USER'].'<br>';
  18. echo $_SERVER['PHP_AUTH_PW'].'<br>';
  19. echo '<hr>';
  20. //其他杂项变量
  21. echo $_SERVER['AUTH_TYPE'].'<br>';
  22. echo $_SERVER['PATH_INFO'].'<br>';
  23. echo $_SERVER['ORIG_PATH_INFO'].'<br>';
  24. echo $_SERVER['QUERY_STRING'].'<br>';
  25. echo $_SERVER['DOCUMENT_ROOT'].'<br>';
  26. echo $_SERVER['GATEWAY_INTERFACE'].'<br>';
  27. echo $_SERVER['PATH_TRANSLATED'].'<br>';
  28. echo $_SERVER['argc'].'<br>';
  29. echo $_SERVER['argv'].'<br>';
  30. echo '<hr>';
  31. //HTTP开头的变量
  32. echo $_SERVER['HTTP_ACCEPT'].'<br>';
  33. echo $_SERVER['HTTP_ACCEPT_CHARSET'].'<br>';
  34. echo $_SERVER['HTTP_ACCEPT_ENCODING'].'<br>';
  35. echo $_SERVER['HTTP_ACCEPT_LANGUAGE'].'<br>';
  36. echo $_SERVER['HTTP_CONNECTION'].'<br>';
  37. echo $_SERVER['HTTP_HOST'].'<br>';
  38. echo $_SERVER['HTTP_REFERER'].'<br>';
  39. echo $_SERVER['HTTP_USER_AGENT'].'<br>';
  40. echo $_SERVER['HTTPS'].'<br>';
  41. echo '<hr>';
  42. //SERVER开头的变量
  43. echo $_SERVER['SERVER_ADDR'].'<br>';
  44. echo $_SERVER['SERVER_NAME'].'<br>';
  45. echo $_SERVER['SERVER_SOFTWARE'].'<br>';
  46. echo $_SERVER['SERVER_PROTOCOL'].'<br>';
  47. echo $_SERVER['SERVER_ADMIN'].'<br>';
  48. echo $_SERVER['SERVER_PORT'].'<br>';
  49. echo $_SERVER['SERVER_SIGNATURE'].'<br>';
  50. echo '<hr>';
  51. //REQUEST开头的变量
  52. echo $_SERVER['REQUEST_METHOD'].'<br>';
  53. echo $_SERVER['REQUEST_TIME'].'<br>';
  54. echo $_SERVER['REQUEST_TIME_FLOAT'].'<br>';
  55. echo $_SERVER['REQUEST_URI'].'<br>';
  56. echo '<hr>';
  57. //REMOTE开头的变量
  58. echo $_SERVER['REMOTE_ADDR'].'<br>';
  59. echo $_SERVER['REMOTE_HOST'].'<br>';
  60. echo $_SERVER['REMOTE_PORT'].'<br>';
  61. echo $_SERVER['REMOTE_USER'].'<br>';
  62. echo $_SERVER['REDIRECT_REMOTE_USER'].'<br>';
  63. echo '<hr>';
  64. //SCRIPT开头变量
  65. echo $_SERVER['SCRIPT_FILENAME'].'<br>';
  66. echo $_SERVER['SCRIPT_NAME'].'<br>';

2、演示效果:

4手写练习:


作业二

1、Filter();

1、filter_has_var():检查是否存在指定输入类型的变量
2、filter_id():返回指定过滤器的ID号
3、filter_input():从脚本外部获取输入,并且进行过滤
4、filter_input_array():从脚本外部获取多项输入,并且进行过滤。
5、filter_list():返回包含所有得到支持的过滤器的一个数组
6、filter_var_array():获取多项变量,并进行过滤
7、filter_var():获取一个变量,并进行过滤。

2、filter_input();

1、INPUT_GET/POST/COOKIE
2、INPUT_ENV
3、INPUT_SERVER
4、INPUT_SESSION()
5、INPUT_REQUEST()

3、过滤器

1、FILTER_CALLBACK:调用用户自定义的函数来过滤数据
2、FILTER_VALIDATE_INT:在指定的范围以整数验证值。
3、FILTER_VALIDATE_BOOLEAN:如果是 “1”, “true”, “on” 以及 “yes”,则返回 true,如果是 “0”, “false”, “off”, “no” 以及 “”,则返回 false。否则返回 NULL。
4、FILTER_VALIDATE_FLOAT:以浮点数验证值。
5、FILTER_VALIDATE_URL:把值作为 URL 来验证。
6、FILTER_VALIDATE_EMAIL:把值作为 e-mail 来验证。
7、FILTER_VALIDATE_IP:把值作为 IP 地址来验证。

常用过滤器函数演示

1、演示代码:

  1. echo '查询filter支持的过滤器';
  2. echo '<pre>' . print_r(filter_list(), true) . '</pre>';
  3. echo '<hr>';
  4. #filter_has_var(); 检查是否有指定类型的量,通过浏览器地址url增加?email=0来练习测试此函数
  5. echo 'filter_has_var();的使用:','<br>';
  6. $a = filter_has_var(INPUT_GET, 'email');
  7. echo $_GET['email'];
  8. echo '<br>';
  9. var_dump($a);
  10. echo '<hr>';
  11. //filter_input();获取外部变量,并通过过滤器判断,符合则返回出变量,否则则返回FALSE;没有此变量则返回NULL。
  12. //通过浏览器地址url增加?email=li@163.com来练习测试此函数
  13. echo 'filter_input();的使用:','<br>';
  14. $b = filter_input(INPUT_GET, 'email', FILTER_VALIDATE_EMAIL);
  15. var_dump($b);
  16. echo '<hr>';
  17. //filter_var();
  18. echo 'filter_var();的使用:','<br>';
  19. $str='中国人是最牛B的';
  20. var_dump(filter_var($str,FILTER_VALIDATE_EMAIL));
  21. echo '<br>';
  22. //自定义过滤器的调用
  23. function filter_words($str){
  24. return str_replace('牛B','强大',$str);
  25. }
  26. //echo $str,'<br>';
  27. echo filter_var($str,FILTER_CALLBACK,['options'=>'filter_words']);

2、演示结果:

作业三:

1、数组序列化:serialize();
2、反序列化:unserialize();

案例演示:

1、代码:

  1. $arr=[1,2,3,4,5,6,8];
  2. $a=serialize($arr);
  3. echo $a,'<br>';
  4. echo '<pre>'.print_r(unserialize($a)).'</pre>'.'<br>';

效果图:

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议