Blogger Information
Blog 25
fans 1
comment 1
visits 20504
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP中$_SERVER变量及常用过滤器--PHP线上培训十期0113
高的PHP十期培训学习笔记
Original
777 people have browsed it

PHP中$_SERVER变量

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

运行结果:

PHP Filter 函数

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

PHP 过滤器

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

过滤器的使用例子

  1. // 过滤器
  2. // $email = 'admin@php.cn';
  3. $email = 'admin@sdfg';
  4. //通过过滤器判断EMAIL变量的格式是否正确
  5. echo filter_var($email, FILTER_VALIDATE_EMAIL) ? '邮箱格式正确' : '邮箱格式错误';

验证请求来源的合法性例子

  1. // 验证请求来源的合法性
  2. $refererDir = dirname(filter_input(INPUT_SERVER, 'HTTP_REFERER'));
  3. // 允许访问当前页面的url数组: 白名单
  4. $urls = [
  5. $refererDir. '/login.php',
  6. $refererDir. '/admin.php',
  7. ];
  8. // 当前的请求源地址
  9. $url = filter_input(INPUT_SERVER, 'HTTP_REFERER');
  10. // 判断请求来源是否合法?
  11. if (!in_array($url, $urls)) {
  12. exit('非法来源');
  13. } else {
  14. die('合法来源');
  15. }

自定义过滤器的使用例子

  1. // 自定义过滤器
  2. function filter_replace($str)
  3. {
  4. return str_replace('php语言', '编程开发', $str);
  5. }
  6. $str = 'php中文网是一个专业学习的php语言的网站';
  7. echo $str . '<br>';
  8. echo filter_var($str, FILTER_CALLBACK, ['options'=>'filter_replace']);

PHP序列化

1. 变量序列化

  1. $var = 'php中文网是一个专业学习的php语言的网站';
  2. // 变量序列化
  3. echo serialize($var);


serialize(): 产生一个可存储的值的表示。返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。
2. 数组序列化

  1. //创建一个数组
  2. $arr = ['admin', '123456', 32,'男', '安徽'];
  3. echo serialize($arr);


3. 反序列化

  1. $arr =unserialize('a:5:{i:0;s:5:"admin";i:1;s:6:"123456";i:2;i:32;i:3;s:3:"男";i:4;s:6:"安徽";}');
  2. print_r($arr);

手写PHP中的 $_SERVER变量

Correction status:Uncorrected

Teacher's comments:
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