【HAVENT原创】PHP 用 filter_var 函数验证 email 和 url
验证 email 如下:
<?php $email = "test@test.com"; if (filter_var($email, FILTER_VALIDATE_EMAIL)) { var_dump("$email is a valid email address"); } else { var_dump("$email is not a valid email address"); } ?>
验证 url 如下:
<?php $url = "http://www.baidu.com"; if (filter_var($url, FILTER_VALIDATE_URL)) { var_dump("$url is a valid url"); } else { var_dump("$url is not a valid url"); } ?>
验证是否为纯数字
<?php $displayName = '123456789';
if(filter_var($displayName, FILTER_VALIDATE_INT)){ throw new \Exception('Display name can not be just a number.', 10007); } ?>
PHP Filters
| ID 名称 | 描述 |
|---|---|
| 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 地址来验证。 |

浙公网安备 33010602011771号