博客列表 >第十期PHP常用$_SERVE变量、过滤器、数据序列化练习(2020-01-13)

第十期PHP常用$_SERVE变量、过滤器、数据序列化练习(2020-01-13)

齐齐
齐齐原创
2020年01月27日 14:20:25469浏览

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.学好的途径是多练多听,没有捷径。

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