Blogger Information
Blog 22
fans 1
comment 0
visits 17734
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
第十期PHP常用$_SERVE变量、过滤器、数据序列化练习(2020-01-13)
齐齐
Original
472 people have browsed it

1.$_SERVER变量练习

php代码

  1. // 返回当前路径和脚本名
  2. echo $_SERVER['PHP_SELF'];
  3. echo "<br>";
  4. // 返回服务器使用的 CGI(公共网关协议) 规范的版本
  5. echo $_SERVER['GATEWAY_INTERFACE'];
  6. echo "<br>";
  7. // 返回服务器IP地址
  8. echo $_SERVER['SERVER_ADDR'];
  9. echo "<br>";
  10. // 返回主机名(域名)
  11. echo $_SERVER['SERVER_NAME'];
  12. echo "<br>";
  13. // 返回服务器标识字符串,服务器的软件相关信息
  14. echo $_SERVER['SERVER_SOFTWARE'];
  15. echo "<br>";
  16. // 返回协议名称和版本
  17. echo $_SERVER['SERVER_PROTOCOL'];
  18. echo "<br>";
  19. // 返回请求方式,默认为GET
  20. echo $_SERVER['REQUEST_METHOD'];
  21. echo "<br>";
  22. // 返回请求开始的时间戳
  23. echo $_SERVER['REQUEST_TIME'];
  24. echo "<br>";
  25. // 返回?后查询字符串
  26. echo $_SERVER['QUERY_STRING'];
  27. echo "<br>";
  28. // 返回当前请求头中 Accept: 项的内容
  29. echo $_SERVER['HTTP_ACCEPT'];
  30. echo "<br>";
  31. // 返回当前请求头中 Accept-Charset项的内容,没有返回空
  32. echo $_SERVER['HTTP_ACCEPT_CHARSET'];
  33. echo "<br>";
  34. // 返回当前请求头中 Host 项的内容
  35. echo $_SERVER['HTTP_HOST'];
  36. echo "<br>";
  37. // 返回当前前一页的地址,但不可信。通过超链接以及POST或GET表单访问的页面,才有效。
  38. echo $_SERVER['HTTP_REFERER'];
  39. echo "<br>";
  40. // 页面通过HTTPS协议被访问,被设为一个非空的值
  41. echo $_SERVER['HTTPS'];
  42. echo "<br>";
  43. // 返回当前访问用户IP地址
  44. echo $_SERVER['REMOTE_ADDR'];
  45. echo "<br>";
  46. // 返回浏览当前页面的用户的主机名
  47. echo $_SERVER['REMOTE_HOST'];
  48. echo "<br>";
  49. // 返回用户机器上连接到Web服务器所使用的端口号
  50. echo $_SERVER['REMOTE_PORT'];
  51. echo "<br>";
  52. // 返回当前执行脚本的绝对路径
  53. echo $_SERVER['SCRIPT_FILENAME'];
  54. echo "<br>";
  55. // 返回服务器管理员信息
  56. echo $_SERVER['SERVER_ADMIN'];
  57. echo "<br>";
  58. // 返回Web服务器使用的端口
  59. echo $_SERVER['SERVER_PORT'];
  60. echo "<br>";
  61. // 返回服务器版本和虚拟主机名的字符串
  62. echo $_SERVER['SERVER_SIGNATURE'];
  63. echo "<br>";
  64. // 返回当前脚本所在文件系统(非文档根目录)的基本路径
  65. echo $_SERVER['PATH_TRANSLATED'];
  66. echo "<br>";
  67. // 返回包含当前脚本的路径
  68. echo $_SERVER['SCRIPT_NAME'];
  69. echo "<br>";
  70. // URI用来指定要访问的页面
  71. echo $_SERVER['SCRIPT_URI'];

运行结果

2.验证器理解和实例联系

实例1

  1. // 过滤器函数
  2. $num=10;
  3. echo filter_var($num,FILTER_VALIDATE_INT)? "合法整数":"不是合法整数";
  4. echo "<br>";
  5. $num=10.1;
  6. echo filter_var($num,FILTER_VALIDATE_INT)? "合法整数":"不是合法整数";
  7. echo "<br>";
  8. // 外部变量过滤器
  9. // 返回主机名
  10. echo filter_input(INPUT_SERVER,'SERVER_NAME');
  11. echo "<br>";
  12. // 返回当前路径和脚本名称
  13. echo filter_input(INPUT_SERVER,'SCRIPT_NAME');
  14. echo "<br>";
  15. // 返回当前路径和脚本名称
  16. echo filter_input(INPUT_SERVER,'QUERY_STRING');
  17. echo "<br>";
  18. // path_info:路径信息 脚本与?之间的值
  19. echo filter_input(INPUT_SERVER,'PATH_INFO');
  20. echo "<br>";
  21. // 返回当前请求的url地址
  22. echo filter_input(INPUT_SERVER,'REQUEST_URI');
  23. echo "<br>";
  24. // 端口号 http协议默认的80 https 443
  25. echo filter_input(INPUT_SERVER,'SERVER_PORT');
  26. echo "<br>";
  27. // 获取完整URl地址
  28. $post=filter_input(INPUT_SERVER,'SERVER_POST');
  29. $scheme=intval($post)===443?'https://':'http://';
  30. $host=filter_input(INPUT_SERVER,'SERVER_NAME');
  31. $url=filter_input(INPUT_SERVER,'REQUEST_URI');
  32. echo $scheme.$host.$url;

运行结果

实例2

  1. // print_r( filter_list());
  2. echo filter_has_var(INPUT_GET,'id')?'存在':'不存在';
  3. echo "<br>";
  4. $email="77@qq.com";
  5. echo filter_var($email,FILTER_VALIDATE_EMAIL)?'一个合法的E-MAIL地址':'不合格E-MAIL地址';
  6. echo "<br>";
  7. // 自定义过滤器
  8. function filter_word($str){
  9. return str_replace('.','_',$str);
  10. }
  11. $str="www.baidu.com";
  12. echo $str;
  13. echo "<br>";
  14. echo filter_var($str,FILTER_CALLBACK,['options'=>'filter_word']);

运行结果

3.数据序列化和反序列化

  1. $arr=[1,true,"qiqi",4.7];
  2. // 序列化
  3. echo serialize($arr);
  4. echo "<br>";
  5. // 反序列化
  6. $str=serialize($arr);
  7. $arr1=unserialize($str);
  8. var_dump($arr1);

运行结果

4.$_SERVER常用变量手抄

5.课程总结

5.1.$_SERVER变量在练习,对具体的含义有些模糊不清。

5.2.过滤器的使用,让数据验证更加安全。能够验证类型之外,还是去除特殊字符。当系统过滤器满足不了需求,定义自定义过滤器来实现。

5.3.数据序列化和反序列化,在存储二维数组数据太方便。简单的解决。

5.4.学好的途径是多练多听,没有捷径。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:序列化在对象中应用的更广泛, 与json配合功能更强大
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post