PHP filter_var() 函数使用

在从前,一个用户通过网络根本是获取音信。如今后的网络刚更尊重与用户的竞相,用户不再只是是网址的浏览者,也是网站内容的创立者。由在此此前只是的“读”向“写”以及“共同编写”发展,由被动接受消息向积极分行音讯发展。而随之而来的平安难点也成了web开辟者不可忽略的难点,验证第三方出自的多少成了每种web程序不可缺少的功能。

filter_var()
函数通过点名的过滤器过滤变量。如若成功,则赶回已过滤的多寡,即使失利,则赶回
false。(具体分裂的过滤条件能够去查文书档案)
filter_var() 重要来过滤用户传来的数额。

filter_var() 函数通过点名的过滤器过滤变量。
假使成功,则赶回已过滤的数码,要是战败,则赶回 false。
语法
filter_var(variable, filter,
options)variable:必需。规定要过滤的变量。
filter:可选。规定要动用的过滤器的 ID。 (参见上边包车型客车FiltersID列表)
options:规定包涵标记/选项的数组。检查各样过滤器或许的注脚和抉择。

在原先,PHP必要表明数据,一般都是程序猿本身通过正则表明式落成,而从PHP从5.2早先把原本的PCEL中的filter函数移到了内置库中,并做了过多强化,可以用这么些函数完毕对数据的过滤和认证。

语法filter_var(variable, filter, options)
variable:必需。规定要过滤的变量。
filter:可选。规定要利用的过滤器的 ID。 (参见下边包车型客车FiltersID列表)
options:规定包括标记/选项的数组。检查各类过滤器大概的标志和挑选。复制代码
代码如下:
<?
@header(‘content-type:text/html;charset=utf-8;’);
$email_a=’jcifox@gmail.com’;
$email_b=’@jcifox@gmail.com’;
$email_c=’jcifoxgmail.com’;
$ip_a=’0.0.0.0′;
$ip_b=’255.255.255.255′;
$ip_c=’0.0.0.265′;
echo $email_a.’ : ’;
echo (filter_var($email_a,FILTER_VALIDATE_EMAIL))?’is valid’:’is not
valid’;
echo ‘<br /><br />’;
echo $email_b.’ : ’;
echo (filter_var($email_b,FILTER_VALIDATE_EMAIL))?’is valid’:’is not
valid’;
echo ‘<br /><br />’;
echo $email_c.’ : ’;
echo (filter_var($email_c,FILTER_VALIDATE_EMAIL))?’is valid’:’is not
valid’;
echo ‘<br /><br />’;
echo $ip_a.’ : ’;
echo (filter_var($ip_a,FILTER_VALIDATE_IP))?’is valid’:’is not
valid’;
echo ‘<br /><br />’;
echo $ip_b.’ : ’;
echo (filter_var($ip_b,FILTER_VALIDATE_IP))?’is valid’:’is not
valid’;
echo ‘<br /><br />’;
echo $ip_c.’ : ’;
echo (filter_var($ip_c,FILTER_VALIDATE_IP))?’is valid’:’is not
valid’;
?>
FiltersID名称:描述
FILTER_CALLBACK:调用用户自定义函数来过滤数据。
FILTER_SANITIZE_STCR-VING:去除标签,去除或编码特殊字符。
FILTER_SANITIZE_STCRUISERIPPED:”string” 过滤器的别称。
FILTER_SANITIZE_ENCODED:U奥迪Q3L-encode 字符串,去除或编码特殊字符。
FILTER_SANITIZE_SPECIAL_CHAEscortS:HTML 转义字符 ‘”<>& 以及 ASCII
值小于 32 的字符。
FILTER_SANITIZE_EMAIL:删除全体字符,除了字母、数字以及
!#$%&’*+-/=?^_{|}~@.[] FILTER_SANITIZE_URL:删除所有字符,除了字母、数字以及 $-_.+!*'(),{}|\\^~[]<>#%”;/?:@&=
FILTER_SANITIZE_NUMBER_INT:删除全数字符,除了数字和 +-
FILTER_SANITIZE_NUMBER_FLOAT:删除全体字符,除了数字、+- 以及
.,eE。
FILTER_SANITIZE_MAGIC_QUOTES:应用 addslashes()。
FILTER_UNSAFE_RAW:不进行任何过滤,去除或编码特殊字符。
FILTER_VALIDATE_INT:在内定的限定以大背头验证值。
FILTER_VALIDATE_BOOLEAN:若是是 “1”, “true”, “on” 以及 “yes”,则赶回
true,假如是 “0”, “false”, “off”, “no” 以及 “”,则赶回 false。不然重回NULL。
FILTER_VALIDATE_FLOAT:以浮点数验证值。
FILTER_VALIDATE_REGEXP:根据 regexp,兼容 Perl
的正则表明式来验证值。
FILTER_VALIDATE_ULacrosseL:把值作为 U奥迪Q5L 来注解。
FILTER_VALIDATE_EMAIL:把值作为 e-mail 来注解。
FILTER_VALIDATE_IP:把值作为 IP 地址来验证。

复制代码 代码如下:

多少来自及评释类型
PHP中的数据来自包括两有个别,其一是外表变量(如POST、GET、老板KIE等),还可能有一种是页面内部发生的多少。PHP针对那三种数据类型分别定义了ilter_input_**和filter_var_**洋洋洒洒函数。而依赖注明办法的不平等又能够分成Validating和Sanitizing三种。Validating用于声明数据,重回三个布尔值。Sanitizing则按法则过滤一些特定的字符,再次回到的是处理后的字符串。

<?
@header(‘content-type:text/html;charset=utf-8;’);
$email_a=’jcifox@gmail.com’;
$email_b=’@jcifox@gmail.com’;
$email_c=’jcifoxgmail.com’;
$ip_a=’0.0.0.0′;
$ip_b=’255.255.255.255′;
$ip_c=’0.0.0.265′;
echo $email_a.’ : ’;
echo (filter_var($email_a,FILTER_VALIDATE_EMAIL))?’is valid’:’is not
valid’;
echo ‘<br /><br />’;
echo $email_b.’ : ’;
echo (filter_var($email_b,FILTER_VALIDATE_EMAIL))?’is valid’:’is not
valid’;
echo ‘<br /><br />’;
echo $email_c.’ : ’;
echo (filter_var($email_c,FILTER_VALIDATE_EMAIL))?’is valid’:’is not
valid’;
echo ‘<br /><br />’;
echo $ip_a.’ : ’;
echo (filter_var($ip_a,FILTER_VALIDATE_IP))?’is valid’:’is not
valid’;
echo ‘<br /><br />’;
echo $ip_b.’ : ’;
echo (filter_var($ip_b,FILTER_VALIDATE_IP))?’is valid’:’is not
valid’;
echo ‘<br /><br />’;
echo $ip_c.’ : ’;
echo (filter_var($ip_c,FILTER_VALIDATE_IP))?’is valid’:’is not
valid’;
?>

轻便用法
例如验证叁个字符串是不是是多个子弹头,在既往我们得以因此正则表达式或是is_numeric函数达成:

FiltersID名称:描述
FILTER_CALLBACK:调用用户自定义函数来过滤数据。
FILTER_SANITIZE_ST纳瓦拉ING:去除标签,去除或编码特殊字符。
FILTER_SANITIZE_STSportageIPPED:”string” 过滤器的别称。
FILTER_SANITIZE_ENCODED:U帕杰罗L-encode 字符串,去除或编码特殊字符。
FILTER_SANITIZE_SPECIAL_CHA瑞鹰S:HTML 转义字符 ‘”<>& 以及 ASCII
值小于 32 的字符。
FILTER_SANITIZE_EMAIL:删除全体字符,除了字母、数字以及
!#$%&’*+-/=?^_`{|}~@.[]
FILTER_SANITIZE_UTucsonL:删除全数字符,除了字母、数字以及
$-_.+!*'(),{}|\\^~[]`<>#%”;/?:@&=
FILTER_SANITIZE_NUMBER_INT:删除全体字符,除了数字和 +-
FILTER_SANITIZE_NUMBER_FLOAT:删除全数字符,除了数字、+- 以及
.,eE。
FILTER_SANITIZE_MAGIC_QUOTES:应用 addslashes()。
FILTER_UNSAFE_RAW:不开始展览其余过滤,去除或编码特殊字符。
FILTER_VALIDATE_INT:在钦赐的限量以大背头验证值。
FILTER_VALIDATE_BOOLEAN:假如是 “1”, “true”, “on” 以及 “yes”,则赶回
true,倘使是 “0”, “false”, “off”, “no” 以及 “”,则赶回 false。不然重回NULL。
FILTER_VALIDATE_FLOAT:以浮点数验证值。
FILTER_VALIDATE_REGEXP:依据 regexp,兼容 Perl
的正则表明式来验证值。
FILTER_VALIDATE_U景逸SUVL:把值作为 U大切诺基L 来注解。
FILTER_VALIDATE_EMAIL:把值作为 e-mail 来验证。
FILTER_VALIDATE_IP:把值作为 IP 地址来证实。

复制代码 代码如下:

你可能感兴趣的篇章:

  • PHP内置过滤器FILTEHighlander使用实例
  • php使用filter过滤器验证邮箱 ipv6地址
    url验证
  • php中使用array_filter()函数过滤空数组的实今世码
  • php中filter函数验证、过滤用户输入的数码
  • 巧用php中的array_filter()函数去掉多维空值的代码分享
  • php
    preg_filter试行三个正则表明式寻找和替换
  • php
    array_filter除去数组中的空字符成分
  • PHP Filter过滤器周详解析
  • PHP filter_var()
    函数

发表评论

电子邮件地址不会被公开。 必填项已用*标注