天天看点

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种格式的正则表达式

<b>1 POSIX正则表达式函数</b>

   为了使用此功能,你首先要配置PHP,使之支持它。在Windows下安装的话,它会自动配置。但是在其他操作系统下,需要手工配置。

要激活 regexp 的支持,请在配置 PHP 时加上 --with-regex[=TYPE]。TYPE 可以是

system,apache 或 php 之一。默认使用 php。

 支持的函数有:

  ereg_replace -- 正则表达式替换

  ereg -- 正则表达式匹配

  eregi_replace -- 不区分大小写的正则表达式替换

  eregi -- 不区分大小写的正则表达式匹配

  split -- 用正则表达式将字符串分割到数组中

  spliti -- 用正则表达式不区分大小写将字符串分割到数组中

  sql_regcase -- 产生用于不区分大小的匹配的正则表达式

<b>2 Perl兼容正则表达式函数</b>

preg_grep --  返回与模式匹配的数组单元

preg_match_all -- 进行全局正则表达式匹配

preg_match -- 进行正则表达式匹配

preg_quote -- 转义正则表达式字符

preg_replace_callback -- 用回调函数执行正则表达式的搜索和替换

preg_replace -- 执行正则表达式的搜索和替换

preg_split -- 用正则表达式分割字符串