博主信息
小辰
博文
26
粉丝
0
评论
2
访问量
4347
积分:0
P豆:52

数据与请求验证实例(0113PHP开发)

2020年01月16日 11:08:25阅读数:267博客 / 小辰/ php开发学习

1.$_SERVER全部变量练习
效果图

运行代码

  1. <?php
  2. echo '1.当前运行脚本所在的服务器的 IP 地址'.$_SERVER['SERVER_ADDR'].'<br>';
  3. echo '2.服务器使用的 CGI 规范的版本'.$_SERVER['GATEWAY_INTERFACE'].'<br>';
  4. echo '3.当前运行脚本所在的服务器的主机名'.$_SERVER['SERVER_NAME'] .'<br>';
  5. echo '4.服务器标识字符串'.$_SERVER['SERVER_SOFTWARE'].'<br>';
  6. echo '5.请求页面时通信协议的名称和版本'.$_SERVER['SERVER_PROTOCOL'].'<br>';
  7. echo '6.请求开始时的时间戳'.$_SERVER['REQUEST_TIME'].'<br>';
  8. echo '7.查询字符串'.$_SERVER['QUERY_STRING'].'<br>';
  9. echo '8.当前运行脚本所在的文档根目录'.$_SERVER['DOCUMENT_ROOT'].'<br>';
  10. echo '9.当前请求头中 Accept内容'.$_SERVER['HTTP_ACCEPT'].'<br>';
  11. echo '10.浏览当前页面的用户的主机名'.$_SERVER['HTTP_HOST'].'<br>';
  12. echo '11.用户机器上连接到 Web 服务器所使用的端口号'.$_SERVER['REMOTE_PORT'].'<br>';
  13. echo '12.经验证的用户'.$_SERVER['REMOTE_USER'].'<br>';
  14. echo '13.当前执行脚本的绝对路径'.$_SERVER['SCRIPT_FILENAME'].'<br>';
  15. echo '14.指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数'.$_SERVER['SERVER_ADMIN'].'<br>';
  16. echo '15.Web 服务器使用的端口'.$_SERVER['SERVER_PORT'].'<br>';
  17. echo '16.包含了服务器版本和虚拟主机名的字符串'.$_SERVER['SERVER_SIGNATURE'].'<br>';
  18. echo '17.当前脚本的路径'.$_SERVER['SCRIPT_NAME'].'<br>';
  19. echo '18.URI 用来指定要访问的页面'.$_SERVER['REQUEST_URI'].'<br>';
  20. echo '19.使用 HTTP 认证功能de变量便是认证的类型'.$_SERVER['AUTH_TYPE'].'<br>';
  21. echo '20.包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息'.$_SERVER['PATH_INFO'].'<br>';
  22. echo '21.在被 PHP 处理之前,"PATH_INFO" 的原始版本。'.$_SERVER['ORIG_PATH_INFO'].'<br>';

2.对常用验证器进行测试
效果图

运行代码

  1. <?php
  2. //过滤器的使用
  3. //对于邮箱的过滤
  4. $email = 'adming';
  5. echo filter_var($email,FILTER_VALIDATE_EMAIL)? '邮箱格式正确' : '邮箱格式错误';
  6. echo '<hr>';
  7. //外部变量过滤
  8. echo $_SERVER['SCRIPT_NAME'].'<br>';
  9. echo filter_input(INPUT_SERVER, 'SCRIPT_NAME') . '<br>';
  10. echo '<hr>';
  11. //过滤掉路径信息
  12. echo filter_input(INPUT_SERVER, 'PATH_INFO') . '<br>';
  13. echo '<hr>';
  14. //URI 的一个实例或实现
  15. echo $_SERVER['SCRIPT_URI'].'<br>';
  16. echo filter_input(INPUT_SERVER, 'REQUEST_URI') . '<br>';
  17. echo '<hr>';
  18. //服务器接口过滤,接口没问题两者结果一致
  19. echo $_SERVER['SERVER_PORT'].'<br>';
  20. echo filter_input(INPUT_SERVER, 'SERVER_PORT') . '<br>';
  21. echo '<hr>';
  22. // 获取当前请求的URL完整地址
  23. $port = filter_input(INPUT_SERVER, 'SERVER_PORT');
  24. $scheme = intval($port) === 443 ? 'https://' : 'http://';
  25. $host = filter_input(INPUT_SERVER, 'HTTP_HOST');
  26. // echo $host;
  27. $uri = filter_input(INPUT_SERVER, 'REQUEST_URI');
  28. echo $scheme . $host . $uri;
  29. echo '<hr>';
  30. echo filter_has_var(INPUT_GET, 'id') ? '存在id' :'不存在id';
  31. echo '<hr>';
  32. //验证ID是否为整数,过滤器对整数的过滤
  33. if (filter_has_var(INPUT_GET, 'id')) {
  34. if (filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT)) {
  35. echo 'id通过';
  36. } else {
  37. echo 'id失败';
  38. }
  39. } else {
  40. echo '不存在id';
  41. }
  42. echo '<hr>';
  43. // 自定义过滤器,将'php.cn'用'php中文网'代替的过滤器
  44. function filter_words($str)
  45. {
  46. return str_replace('php.cn', 'php中文网', $str);
  47. }
  48. $str = 'php.cn是一个专业的php学习与分享平台';
  49. echo $str . '<br>';
  50. //ILTER_CALLBACK 过滤器调用用户自定义函数来过滤数据。该过滤器为我们提供了对数据过滤的完全控制。
  51. echo filter_var($str, FILTER_CALLBACK, ['options'=>'filter_words']);

3.数据序列化与反序列化基本操作
效果图

运行代码

  1. <?php
  2. // 序列化
  3. $var = 999;
  4. // 变量序列化
  5. echo serialize($var);
  6. echo '<hr>';
  7. // 数组序列化
  8. $arr = [
  9. 999,
  10. 'pyp',
  11. 'true',
  12. 9.99
  13. ];
  14. echo serialize($arr);
  15. echo "<hr>";
  16. // 反序列化
  17. $a1 =unserialize('a:4:{i:0;i:999;i:1;s:3:"pyp";i:2;s:4:"true";i:3;d:9.99;}');
  18. var_dump($a1);
  19. echo "<hr>";
  20. setcookie('user', serialize($arr));
  21. $add=unserialize($_COOKIE['user']);
  22. var_dump($add);

4.小结
我觉得过滤器的主要作用是准确的获取,过滤的值。而序列化可以快速的将值放入cookie中,提高效率。

批改老师:天蓬大人天蓬大人

批改状态:合格

老师批语:序列化是为了传输或存储方便

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论