将ereg函数替换为preg_match



我刚刚在客户的网站上遇到了一个错误,说ereg已被弃用,我已经做了一点谷歌搜索,发现你应该使用preg_match作为它的替代品。

唯一的问题是,我不太了解preg_match函数,我也试图理解这个ereg函数作为一个以前的雇主,谁不再在这里编写这个网站。

无论如何,这是函数,我需要知道我应该如何替换它:

if ( ! ereg( '/$', $sCurrentFolder ) ) $sCurrentFolder .= '/' ;

它的意思是"如果最后一个字符是斜杠"所以你可以使用
preg_match("(/$)",$sCurrentFolder)或应用更多的聪明:

if( substr($sCurrentFolder,-1) == "/") $sCurrentFolder .= "/";

甚至:

$sCurrentFolder = rtrim($sCurrentFolder,"/")."/";
// This one will remove multiple slashes from the end of $sCurrentFolder
// useful in case of possibly malformed input

您原来的ereg似乎只检查字符串$sCurrentFolder末尾的正斜杠:

if ( ! ereg( '/$', $sCurrentFolder ) ) $sCurrentFolder .= '/' ;

我相信这个正则表达式使用preg_match应该工作:

if ( ! preg_match( '//$/', $sCurrentFolder ) ) $sCurrentFolder .= '/' ;

EDIT:原始海报表明这与旧版本的FCKEditor &我找到了这个相当详细的答案,精确地指出了所有eregeregi问题。建议更换。一定要从头到尾看一遍。如果您正在调试旧的FCKEditor安装,这是一个非常好的解决方案列表和讨论。尽管我将诚实地说,我对所提出的一些建议并不是百分之百肯定。

最新更新