filter_var() 函数通过指定的过滤器过滤变量。 
如果成功,则返回已过滤的数据,如果失败,则返回 false。 
语法 :
filter_var(variable, filter, options)variable:必需。规定要过滤的变量。

filter:可选。规定要使用的过滤器的 ID。

options:规定包含标志/选项的数组。检查每个过滤器可能的标志和选项。

FiltersID名称:描述 
FILTER_CALLBACK:调用用户自定义函数来过滤数据。 
FILTER_SANITIZE_STRING:去除标签,去除或编码特殊字符。 
FILTER_SANITIZE_STRIPPED:"string" 过滤器的别名。 
FILTER_SANITIZE_ENCODED:URL-encode 字符串,去除或编码特殊字符。 
FILTER_SANITIZE_SPECIAL_CHARS: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_URL:把值作为 URL 来验证。 
FILTER_VALIDATE_EMAIL:把值作为 e-mail 来验证。 
FILTER_VALIDATE_IP:把值作为 IP 地址来验证。

案例:

<?php
$errorArray=array(); if(isset($_POST['save'])){
  $name=trim($_POST['uname']);
  $address=trim($_POST['address']);
  $age=trim($_POST['age']);
  $email=trim($_POST['email']);
  $website=trim($_POST['website']); if($name=='' || $address=='' || $age=='' || $email=='' || $website==''){
array_push($errorArray,'Please fill all fileds.');
} if(filter_var($age,FILTER_VALIDATE_INT)==FALSE){
array_push($errorArray,'Please enter a number for age.');
} if(filter_var($email,FILTER_VALIDATE_EMAIL)==FALSE){
array_push($errorArray,'Email address is incorrect.');
} if(filter_var($website,FILTER_VALIDATE_URL)==FALSE){
array_push($errorArray,'Website address is incorrect.');
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
fieldset{width: 400px;}
.error{color:red;}
.info{color:#008000;font-weight:bold;}
</style>
</head>
<body>
<?php
if(count($errorArray)>0){
?>
<p class="error">
<?php
foreach($errorArray as $error){
echo $error.'<br/>';
}
?>
</p>
<?php }?>
<form method="post">
<fieldset>
<legend><strong>All fields are mandatory</strong></legend>
<table>
<tbody>
<tr>
<td>Name:</td>
<td><input type="text" name="uname"/></td>
</tr>
<tr>
<td>Address:</td>
<td><input type="text" name="address"/></td>
</tr>
<tr>
<td>Age:</td>
<td><input type="text" name="age"/></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email"/></td>
</tr>
<tr>
<td>Website:</td>
<td><input type="text" name="website"/></td>
</tr>
</tbody>
</table>
</fieldset>
<br/>
<input type="submit" name="save" value="Submit"/>
</form>
</body>
</html>

PHP 中filter_var的使用的更多相关文章

  1. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

  2. thinkphp中I方法

    概述 正如你所见到的一样,I方法是ThinkPHP众多单字母函数中的新成员,其命名来自于英文Input(输入),主要用于更加方便和安全的获取系统输入变量,可以用于任何地方,用法格式如下:I('变量类型 ...

  3. php中正则表达式的匹配和数据验证总结

    正则表达式能匹配复杂的字符串形式,比字符串处理函数功能更加多,只不过执行效率有所降低,但是可以实现非常复杂的匹配,下面总结一下 1.简单的字符串匹配,判断指定字符串是不是在另一个字符串中,和字符串查找 ...

  4. 10件在PHP 7中不要做的事情

    刚刚在园子里看到一篇特别好的文章,就拿到我的园子里分享了. 1. 不要使用mysql_函数 这一天终于来了,从此你不仅仅“不应该”使用mysql_函数.PHP 7 已经把它们从核心中全部移除了,也就是 ...

  5. php使用过滤器filter_var轻松验证邮箱url和ip地址等

    以前使用php的时候还不知道有过滤器filter这玩意,那时候判断邮箱.url和ip地址格式是否符合都是用正则表达式.后来随着使用的逐渐深入,才知道在php中也可以使用内置的函数库过滤器filter来 ...

  6. 10 件在 PHP 7 中不要做的事情

    1. 不要使用mysql_函数 这一天终于来了,从此你不仅仅"不应该"使用mysql_函数.PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数 ...

  7. thinkphp中各字母代表的发放和具体实例

    hinkphp单字母函数使用指南A方法 A方法用于在内部实例化控制器,调用格式:A('[项目://][分组/]模块','控制器层名称') 最简单的用法: $User = A('User'); 复制代码 ...

  8. 十个你需要在 PHP 7 中避免的坑

    1. 不要使用 mysql_ 类函数 终于,你不用再看到建议不要使用 mysql_ 函数的提示了.因为 PHP 7 从核心上完全移除了它们,这意味着请你移步至更好的 mysqli_ 类函数,或者更灵活 ...

  9. ***ThinkPHP中的常用方法汇总总结:M方法,D方法,U方法,I方法

    thinkPHP中M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会自动调用M方法 ...

随机推荐

  1. HDOJ 1420 Prepared for New Acmer(DP)

    Problem Description 集训进行了将近2个礼拜,这段时间以恢复性训练为主,我一直在密切关注大家的训练情况,目前为止,对大家的表现相当满意,首先是绝大部分队员的训练积极性很高,其次,都很 ...

  2. html+css显示代码书写版式

    由于要显示行数,所以需选用html的列表标签ol,以下代码可以显示代码书写版式的效果: <style> .code-part { background: yellow; } .code-p ...

  3. codeforces 100548F (西安现场赛F题):容斥原理

    题目大意: 对n个排成一排的物品涂色,有m种颜色可选. 要求相邻的物品颜色不相同,且总共恰好有K种颜色,问所有可行的方案数 分析: 从m种颜色中选出k种,有c(m,k)种方法,那么我们只用考虑 k种颜 ...

  4. Java 反射机制详解

    动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如众所周知的ECMAScript(JavaScript)便是一个动态语言.除此之外如Ru ...

  5. [每日一题] 11gOCP 1z0-053 :2013-09-30 ASMCMD.......................................................8

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12206095 正确答案:BCD 为了使ASM文件管理更简单,Oracle提供了一个命令实用 ...

  6. ORA-00314,redolog 损坏,或丢失处理方法

    alertsid.log报错信息: Fri Sep 27 15:18:39 2013 Started redo scan Fri Sep 27 15:18:39 2013 Errors in file ...

  7. Python 2 到 Python 3的变化

    Python 2.x到Python 3.x变化还是挺大的,具体的变化,参考官方文档: https://docs.python.org/3.0/whatsnew/3.0.html

  8. (转)关于Android的nodpi,xhdpi,hdpi,mdpi,ldpi

    首先是几个基本概念:1.屏幕尺寸Screen size即显示屏幕的实际大小,按照屏幕的对角线进行测量.为简单起见,Android把所有的屏幕大小分为四种尺寸:小,普通,大,超大(分别对应:small, ...

  9. Jmeter压力测试环境准备

    Jmeter性能监控 配置好测试机器上的jmeter环境:http://jmeter-plugins.org/downloads/all/ 网站下载两个东西: JMeterPlugins-Standa ...

  10. android与javascript相互调用

    下面这一节来介绍android和javascript是怎么相互调用的,这样我们的UI界面设计起来就简单多了,而且UI设计起来也可以跨平台.现在有好多web app前台框架了,比如sencha和jque ...