【PHP】强大的filter_var

猫哥写代码时候经常会遇到各种需要判断的:

  • 判断是否数字;
  • 判断是否字符串;
  • 判断是否合法email;
  • 判断是否IPv4地址;
  • ......

从前总会傻傻地写各种正则表达式,虽然正则水平有所提高,但是效率低吖~

直到有一天猫哥发现了filter_var这个强大的工具!之前的猫哥哭晕在厕所... 大哭


官网文档:http://php.net/manual/en/function.filter-var.php


来看一系列栗子:

<?php # coding: utf-8

$ip = '1.2.3.4';
if(filter_var($ip, FILTER_VALIDATE_IP)) {
	echo $ip." is valid IP <br>";
} else {
	echo $ip." is not valid IP. <br>";
}

$ip = '311.2.3.4';
//判断是否是合法的IPv4 IP地址
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
	echo "Second paragraph...<br>";
	echo $ip." is valid IP <br>";
} else {
	echo $ip." is not valid IP <br>";
}

$ip = '10.1.1.1'; //192.168.1.1 这类的一样...
//判断是否是合法的公共IPv4地址
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE)) {
	echo $ip." is public IPv4 <br>";
} else {
	echo $ip." is not public IPv4 <br>";
}

$ip = 'FF01::101';
//判断是否是合法的IPv6地址
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE)) {
	echo $ip." is valid IPv6 <br>";
} else {
	echo $ip." is not valid IPv6 <br>";
}

$email = "a@bc.cn";
//判断是否是public IPv4 IP或者是合法的Public IPv6 IP地址
if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
	echo $email." is a valid email. <br>";
} else {
	echo $email." is not valid email. <br>";
}

$url = "http://blog.csdn.net/972301/article/details/50654449";
if(filter_var($url, FILTER_VALIDATE_URL)) {
	echo $url." is a valid url. <br>";
} else {
	echo $url." is not valid url. <br>";
}

$mac = "00:11:22:EE:ff:aa";
if(filter_var($mac, FILTER_VALIDATE_MAC)) {
	echo $mac." is a valid mac address. <br>";
} else {
	echo $mac." is not valid mac address. <br>";
}


结果:

1.2.3.4 is valid IP 
311.2.3.4 is not valid IP 
10.1.1.1 is not public IPv4 
FF01::101 is valid IPv6 
a@bc.cn is a valid email. 
http://blog.csdn.net/972301/article/details/50654449 is a valid url. 
00:11:22:EE:ff:aa is a valid mac address. 


当然,更详细的解释和filters,还是要看看官网: http://php.net/manual/en/filter.filters.php


编后按

猫哥曰:正则虽好,效率第一,为了进度,你懂的~


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值