4.7 用正则表达式查找子字符串
查找子字符串是正则表达式的主要应用。在PHP中,可以使用的并且用于匹配POSIX风格正则表达式的两个函数是ereg()和eregi()。ereg()函数原型如下所示:
int ereg(string pattern,string search,array[matches]);
该函数搜索字符串search,在pattern中寻找与正则表达式相匹配的字符串。如果发现了与pattern的子表达式相匹配的字符串,这些字符串将会存储在数组matches中,每个数组元素对应一个子表达式。
函数eregi()除了不区分大小写外,其他功能与ereg()一样。
可以使用如下所示的代码对智能表单例子进行修改:
if(!eregi('^[a-zA-Z0-9_-.]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$',$email)){
echo"<p>That is not a valid email address.</p>".
<p>Please return to the previous page and try again.</p>";
exit;
}
$toaddress="feedback@example.com";//the default value
if(eregi("shop|customer service|retail",$feedback))
$toaddress="retail@example.com";
}else if(eregi("deliver|fulfill",$feedback)){
$toaddress="fulfillment@example.com";
}else if(eregi("bill|account",$feedback)){
$toaddress="accounts@example.com";
}
if(eregi("bigcustomer.com",$email)){
$toaddress="bob@example.com";
}