原文:PHP 18:data_valid_fns.php 看正则表达式
本章介绍正则表达式。
先看看data_valid_fns.php的代码吧。
1 <?php
2
3 function filled_out($form_vars)
4 {
5 // test that each variable has a value
6 foreach ($form_vars as $key => $value)
7 {
8 if (!isset($key) || ($value == ''))
9 return false;
10 }
11 return true;
12 }
13
14 function valid_email($address)
15 {
16 // check an email address is possibly valid
17 if (ereg('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $address))
18 return true;
19 else
20 return false;
21 }
22
23 ?>
24
简要介绍一下。
filled_out($form_vars)验证输入的有效性。
valid_email($address)验证email的有效性。它是通过正则表达式进行的。
本章具体介绍正则表达式。
PHP支持POSIX扩展的正则表达式,也支持使用Perl语法兼容的正则表达式。
如果你对正则表达式不是很清楚的话,请参见正则表达式的语法。
下面我们分别介绍以下这2种格式的正则表达式
1 POSIX正则表达式函数
为了使用此功能,你首先要配置PHP,使之支持它。在Windows下安装的话,它会自动配置。但是在其他操作系统下,需要手工配置。
要激活 regexp 的支持,请在配置 PHP 时加上 --with-regex[=TYPE]。TYPE 可以是
system,apache 或 php 之一。默认使用 php。
支持的函数有:
- ereg_replace -- 正则表达式替换
- ereg -- 正则表达式匹配
- eregi_replace -- 不区分大小写的正则表达式替换
- eregi -- 不区分大小写的正则表达式匹配
- split -- 用正则表达式将字符串分割到数组中
- spliti -- 用正则表达式不区分大小写将字符串分割到数组中
- sql_regcase -- 产生用于不区分大小的匹配的正则表达式
2 Perl兼容正则表达式函数
- preg_grep -- 返回与模式匹配的数组单元
- preg_match_all -- 进行全局正则表达式匹配
- preg_match -- 进行正则表达式匹配
- preg_quote -- 转义正则表达式字符
- preg_replace_callback -- 用回调函数执行正则表达式的搜索和替换
- preg_replace -- 执行正则表达式的搜索和替换
- preg_split -- 用正则表达式分割字符串