将ereg函数替换为preg_match

时间:2014-06-05 14:53:28

标签: php preg-match

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

唯一的问题是,我对preg_match函数了解不多,而且我也试图理解这个ereg函数作为以前的雇主,不再在这里对此网站进行编码。

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

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

2 个答案:

答案 0 :(得分:3)

那件事基本上是说"如果最后一个字符是斜线",那么你可以使用
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

答案 1 :(得分:2)

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

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

我相信使用preg_match的正则表达式应该有效:

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

编辑:原始海报表明这与旧版FCKEditor&我挖出this fairly detailed answer来查明所有eregeregi问题&建议替换。一定要看看整个线程。如果您正在调试FCKEditor的旧安装,那么这是一个非常好的列表和解决方案的讨论。虽然我会说实话,但我对所提出的一些建议并不是100%肯定。