PHP如何使用过滤器和过滤器常数()

PHP Filter是一个扩展, 可通过清理或验证数据来过滤数据。它在网站安全中起着至关重要的作用, 尤其是当数据来自未知或外部来源(例如用户提供的输入)时, 此功能特别有用。例如, 来自HTML表单的数据。
主要有以下两种类型的过滤器:

  • 验证:用于验证或检查数据是否符合某些条件。例如, 传递FILTER_VALIDATE_URL将确定数据是否为有效的url, 但不会自行更改现有数据。
  • 消毒:与验证不同, 清理将对数据进行清理, 以便通过删除或更改数据来确保没有不想要的字符。例如, 传递FILTER_SANITIZE_EMAIL将删除所有不适合包含电子邮件地址的字符。也就是说, 它不会验证数据。
范例1:PHP程序使用FILTER_VALIDATE_URL过滤器来验证URL。
< ?php // PHP program to validate URL// Declare variable and initialize it to URL $url = "https://www.lsbin.org" ; // Use filter function to validate URL if (filter_var( $url , FILTER_VALIDATE_URL)) { echo ( "valid URL" ); } else { echo ( "Invalid URL" ); }?>

范例2:PHP程序使用FILTER_VALIDATE_EMAIL过滤器来验证电子邮件。
< ?php // PHP program to validate email// Declare variable and initialize it to email $email = "xyz@gmail.com" ; // Use filter function to validate email if (filter_var( $email , FILTER_VALIDATE_EMAIL)) { echo "Valid Email" ; } else { echo "Invalid Email" ; }?>

【PHP如何使用过滤器和过滤器常数()】过滤功能:过滤功能用于过滤来自不安全来源的数据。
  • filter_var():过滤特定变量
  • filter_var_array():过滤多个变量, 即变量数组
  • filter_has_var():检查特定输入类型的变量是否存在
  • filter_id():帮助获取指定过滤器名称的过滤器ID
  • filter_list():以数组形式返回受支持的过滤器名称的列表。
  • filter_input():获取一个外部变量并对其进行过滤(如果设置为这样做的话)。
  • filter_input_array():与filter_input()相同, 但在这里获取多个变量, 即变量数组, 并设置为过滤它们。
预定义的过滤器常数:下面列出了许多预定义的过滤器常数:
  • 验证过滤器常量:
    • FILTER_VALIDATE_BOOLEAN:验证布尔值
    • FILTER_VALIDATE_INT:验证整数
    • FILTER_VALIDATE_FLOAT:验证浮点数
    • FILTER_VALIDATE_REGEXP:验证正则表达式
    • FILTER_VALIDATE_IP:验证IP地址
    • FILTER_VALIDATE_EMAIL:验证电子邮件地址
    • FILTER_VALIDATE_URL:验证URL
  • 清理过滤器常量:
    • FILTER_SANITIZE_EMAIL:从电子邮件地址中删除所有非法字符
    • FILTER_SANITIZE_ENCODED:删除/编码特殊字符
    • FILTER_SANITIZE_MAGIC_QUOTES:应用addslashes()函数
    • FILTER_SANITIZE_NUMBER_FLOAT:删除所有字符, 除了数字, +-和可选的.e e
    • FILTER_SANITIZE_NUMBER_INT:删除除数字和+ –以外的所有字符
    • FILTER_SANITIZE_SPECIAL_CHARS:删除特殊字符
    • FILTER_SANITIZE_FULL_SPECIAL_CHARS可以使用FILTER_FLAG_NO_ENCODE_QUOTES禁用编码引号。
    • FILTER_SANITIZE_STRING:从字符串中删除标签/特殊字符
    • FILTER_SANITIZE_STRIPPED:FILTER_SANITIZE_STRING的别名
    • FILTER_SANITIZE_URL:从s网址中删除所有非法字符
  • 其他过滤器常数:
    • FILTER_UNSAFE_RAW:不执行任何操作, 可以选择去除/编码特殊字符
    • FILTER_CALLBACK:调用用户定义的函数来过滤数据
注意:默认情况下, PHP 5.2.0和更高版本中启用了PHP过滤器。安装需要较旧的版本。
参考: http://php.net/manual/en/filter.filters.sanitize.php

    推荐阅读