(转)PHP的ereg()与eregi()的不同及相同点。对比
ereg()
字符串比对解析。
语法: int ereg(string pattern, string string, array [regs]);
返回值: 整数/数组
函数种类: 资料处理
内容说明 |
本函数以 pattern 的规则来解析比对字符串 string。比对结果返回的值放在数组参数 regs 之中,regs[0] 内容就是原字符串 string、regs[1] 为第一个合乎规则的字符串、regs[2] 就是第二个合乎规则的字符串,余类推。若省略参数 regs,则只是单纯地比对,找到则返回值为 true。
使用范例 简单例子: |
<?php
if (ereg("c","abcdef")){ //说明:判断abcdef中是否含有字母c
echo "通过";
}else{
echo "错误";
}
?>
下面这个例子是对输入的 E-Mail 作简单的检查,检查使用者的 E-Mail 字符串是否有 @ 字符,在 @ 字符前有英文字母或数字,在之后有数节字符串,最后的小数点后只能有二个或三个英文字母。super@mail.wilson.gs 就可以通过检查,super@mail.wilson 就不能通过检查。
<?php
if (ereg("^[_/.0-9a-z-]+@([0-9a-z][0-9a-z-]+/.)+[a-z]{2,3}$",$email)) {
echo "您的 E-Mail 通过初步检查";
}
?>
eregi()
用法与 ereg() 相同。不同之处在于
下面举例说明这两个函数的区别:
在abcdef中查找是否含有大写字母C
<?php
if (ereg("C","abcdef")){
echo "通过";
}else{
echo "错误";
}
?>
//返回结果是:错误
<?php
if (eregi("C","abcdef")){
echo "通过";
}else{
echo "错误";
}
?>
//返回结果是:通过
ereg() 有区分大小写,eregi()本函数与大小写无关。
例子
<?php $str="a"; if(eregi("[0-9]+",$str)){ echo"这是一个数字"; } else if(eregi("[a-z]+",$str)){ echo"这是一个字母"; } else if(eregi("[一-龥]+",$str)){ echo"这是一个汉字"; } ?> |