PHP 5.3的ereg / eregi替换

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP 5.3的ereg / eregi替换脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我很抱歉提出一个问题,但是在理解正则表达式代码时我没用.

在我没写的PHP模块中是以下功能

function isURL($url = NULL) {
    if($url==NULL) return false;

    $PRotocol = '(http://|https://)';
    $Allowed = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)';

    $regex = "^". $protocol . // must include the protocol
                     '(' . $allowed . '{1,63}\.)+'. // 1 or several sub domains wITh a max of 63 chars
                     '[a-z]' . '{2,6}'; // followed by a TLD
    if(eregi($regex,$url)==true) return true;
    else return false;
}

一些善良的灵魂可以给我替换代码,替代eregi

好的问题 – 当您升级PHP 5.3时,这是必需的,其中不推荐使用ereg和eregi函数.取代
eregi('pattern',$string,$matches)

使用

preg_match('/pattern/i',$matches)

(在第一个参数中的尾随我意味着忽略,并对应于eregi中的i – 在替换ereg调用的情况下跳过).

但要注意新旧模式之间的差异! This page列出了主要的差异,但是对于更复杂的正则表达式,您必须更详细地查看POSIX regex(由旧的ereg / eregi / split函数支持)与PCRE间的差异.

但在您的示例中,您只需使用以下命令替换eregi调用即可:

if (preg_match("%{$regex}%i",$url))
    return true;

(注意:%是一个分隔符,通常使用斜杠/,您可以确保分隔符不在正则表达式中,也可以将其转义.在示例中,斜杠是$regex的一部分,因此更方便使用不同的字符作为分隔符.)

脚本宝典总结

以上是脚本宝典为你收集整理的PHP 5.3的ereg / eregi替换全部内容,希望文章能够帮你解决PHP 5.3的ereg / eregi替换所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。