PHP正则式eregi 语句改成preg_match语句转为preg_match函数的简单方法

以前经常遇到一些老代码中使用eregi()函数,但是自从 php5.3不支持eregi(),用preg_match()替代后,程序就会提示找不到eregi()函数,我本人对正则式研究的不透,总是看不懂,只好因为这一点问题不得不放弃使用那段代码。

今天看到一篇文章,提供了一个简单的转化方法,试了一下,居然所有的代码都能运行了。


一般来说eregi($regex,$input)可以替换为:preg_match("/$regex/i",$input)

简单的说就是首先把函数名字换了,然后把原先的正则式前面加"/,后面加/i"

给个例子

function validate_email($email) {
    if (!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$", $email)) {
        echo 'bad email';
    } else {
        echo 'good email';
    }
}

可以变为

function validate_email($email) {
    if (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", $email)) {
        echo 'bad email';
    } else {
        echo 'good email';
    }
}

我不知道这个变法是否对所有的语句都管用,反正我手头的几个旧代码又救活了。


随机推荐

(function(){ var src = "https://s.ssl.qhres2.com/ssl/ab77b6ea7f3fbf79.js"; document.write('