博客列表 >1118 关于PHP常量的总结以及变量过滤器的使用

1118 关于PHP常量的总结以及变量过滤器的使用

酒淋后
酒淋后原创
2020年12月16日 09:11:20717浏览

关于PHP常量的总结以及变量过滤器的使用

一、PHP常量的总结

预定义常量

  • 查看php版本号:PHP_version
  • 查看当前操作系统:PHP_OS_FAMILY
  • 环境变量的目录列表的分隔符:PATH_SEPARATOR
  • 目录分隔符:directory_separator
  • PHP这门语言最大的整数:PHP_int_max
  • PHP这门语言最大的浮点数:PHP—float_max

魔术常量

__function__;

__function__;

__line__;

__namespace__

1、特点:

  • 常量必须初始化赋值;
  • 常量不能重新被定义或者取消定义;
  • 常量不受作用域的限制,具有超全局作用域;;

2、常量的定义:

2.1 define函数方法定义常量:

语法:

  1. define(常量名,值,是否对大小写敏感);

2.2 const定义常量;

语法:

  1. const 变量名=值;

3、注意事项:

  • define函数的第三个参数是否大小写敏感,系统默认是false;

  • define 可以放入条件分支语句中,而const不可以放入;

二、变量过滤器的使用

变量过滤器有什么用?

我们做web应用程序需要对用户输入的数据进行判断,比如我们需要用户输入的年龄是18岁,但是用户给我来一个十八岁,很显然,前面的这个18是是整型,而后面这个十八是字符型,这个时候我们就需要系统去做判断,这个时候就可以使用变量过滤器进行过滤判断,确保用户输入的数据是合法的程序员需要的(当然其他方法也是有的,这里只是举个例子)。

过滤器函数:

使用下面代码可以遍历出系统提供的过滤器:
  1. foreach(filter_list() as $filter)
  2. {
  3. echo $filter ."=>".filter_id($filter)."<br>";
  4. }
filter_var() :通过一个指定的过滤器来过滤单一的变量
  1. `filter_var(变量名,过滤器名称);`
代码举例:
  1. $int = 18;
  2. if(!filter_var($int, FILTER_VALIDATE_INT)){
  3. echo("不是整型");
  4. }else{
  5. echo("是整型");
  6. }
  7. 输出结果:是整型
filter_var_array() :通过相同的或不同的过滤器来过滤多个变量

语法:filter_var_array(array,args)

参数 描述
array 必需的,带有字符串的数组,包含要过滤的数据
args 可选的,合法的数组键是变量名。合法的值是过滤器ID,或者规定过滤器,标志以及选项的数组。该参数也可以是一个单独的过滤器ID,如果是这样,输入数组中的所有值由指定过滤器进行过滤。

举例:

  1. <?php
  2. $arr = array
  3. (
  4. "username" => "jiulinghou",
  5. "age" => "18",
  6. "email" => "123456@qq.com",
  7. );
  8. // 过滤
  9. $filters = array
  10. (
  11. "username" => array
  12. (
  13. "filter" =>FILTER_CALLBACK, // FILTER_CALLBACK 过滤器使用用户自定义函数对值进行过滤。
  14. "flags" =>FILTER_FORCE_ARRAY,
  15. "options" => "ucwords" // ucwords 函数 每个单词的首字符转换为大写
  16. ),
  17. "age" =>array
  18. (
  19. "filter" =>FILTER_VALIDATE_INT, // 过滤 age 的值是否为整型
  20. "options" => array
  21. (
  22. "min_range" =>1,
  23. "max_range" =>120 //范围限制在 1~120 之间
  24. )
  25. ),
  26. "email" => FILTER_VALIDATE_EMAIL, //过滤 email
  27. );
  28. print_r(filter_var_array($arr, $filters));
  29. // Array ( [username] => Jiulinghou [age] => 18 [email] => 123456@qq.com )
  30. // 以上 email 如果不是一个正确的 email 那么输出结果为:Array ( [username] => Jiulinghou [age] => 18 [email] => )
filter_input :获取一个输入变量,并对它进行过滤

定义和用法

filter_input() 函数从脚本外部获取输入,并进行过滤,本函数用于对来自非安全来源的变量进行验证,比如用户的输入。

本函数可从下面来源获取输入:

  • INPUT_GET
  • INPUT_POST
  • INPUT_COOKIE
  • INPUT_ENV
  • INPUT_SERVER
  • INPUT_SESSION (Not yet implemented)
  • INPUT_REQUEST (Not yet implemented)

如果成功,则返回被过滤的数据,如果失败,则返回 false,如果 variable 参数未设置,则返回 NULL。

语法:

filter_input(input_type, variable, filter, options)

input_type 参数: 必须的。规定输入的类型;
variable 参数:规定要过滤的变量;
fiter 参数:可选,规定要是用的过滤器ID。默认是filter_sanitize_string,简单来说就是设置一个过滤器;
options 参数:规定包含标志/选项的数组。检查每个过滤器可能的标志和选项。

举个栗子:
下面测试一个从表单 通过 post 传过来一个email 的变量

  1. <?php
  2. if(!filter_input(input_post,'email',filter_validate_email))
  3. {
  4. echo '传过来的不是一个正确的Email';
  5. }else{
  6. echo 'email格式是正确的!';
  7. }
filter_input_array : 获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤

其实这个跟上面那个 filter_array 的方法意思差不多 知识由于是input 传过来的值 需要把 传递方法和变量引进来;

定义和用法

filter_input_array() 函数从脚本外部获取多项输入,并进行过滤。

本函数无需重复调用 filter_input(),对过滤多个输入变量很有用。

本函数可从各种来源获取输入:

  • INPUT_GET
  • INPUT_POST
  • INPUT_COOKIE
  • INPUT_ENV
  • INPUT_SERVER
  • INPUT_SESSION (Not yet implemented)
  • INPUT_REQUEST (Not yet implemented)
    如果成功,则返回被过滤的数据,如果失败,则返回 false。

语法

filter_input(input_type, args)

举个栗子:

  1. <?php
  2. $filters = array
  3. (
  4. "name" => array
  5. (
  6. "filter"=>FILTER_CALLBACK,
  7. "flags"=>FILTER_FORCE_ARRAY,
  8. "options"=>"ucwords"
  9. ),
  10. "age" => array
  11. (
  12. "filter"=>FILTER_VALIDATE_INT,
  13. "options"=>array
  14. (
  15. "min_range"=>1,
  16. "max_range"=>120
  17. )
  18. ),
  19. "email"=> FILTER_VALIDATE_EMAIL,
  20. );
  21. print_r(filter_input_array(INPUT_POST, $filters));
  22. ?>

输出结果:

  1. Array
  2. (
  3. [name] => Peter
  4. [age] => 41
  5. [email] => peter@example.com
  6. )
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议