2011-12-27 42 views
-3

我有这个警告,已弃用:函数ereg_replace()已弃用 有人请帮助我。ereg_replace to preg_replace

ereg_replace:

ereg_replace('([^(folder)])/images/flash', '"/folder/images/flash', $echotemp); 

到的preg_replace:

+0

那么,你可以开始[这里](http://php.net/manual/en/function.preg-replace.php),尤其是[这里](http://www.php.net/manual /en/reference.pcre.pattern.posix.php)。 – Dan 2011-12-27 09:04:18

+0

这是什么语言?如果你想得到更具体的答案,添加这个信息,它会帮助你的问题可见性 – samy 2011-12-27 09:04:56

+0

你认为'([^(文件夹)]''在正则表达式中意味着什么? – Toto 2011-12-27 12:37:54

回答

0

已过时的方法是,将在未来退出您正在使用的语言的方法。除非你掌握了语言规范和路线图,否则你没有太多的杠杆作用。

您仍然可以使用该方法,但它可以在未来的更新中消失,并且通常支持该方法将只推荐切换到新建议的处理方式。

我建议使用ereg_replace的替换方法。

0

来源:ereg_replace

注:
作为PHP 5.3.0中,正则表达式扩展有利于PCRE扩展的弃用。调用此函数将发出E_DEPRECATED通知。有关转换为PCRE的帮助,请参阅the list of differences

提示

的preg_replace(),它使用了Perl兼容正则表达式语法,往往是ereg_replace更快的替代方案()。

阅读:PCRE regex syntax


并为您的模式:

当使用PCRE功能,则需要该模式由delimiters封闭。分隔符可以是任何非字母数字,非反斜杠,非空白字符。

经常使用的分隔符是正斜杠(/),散列符号(#)和波形符号(〜)。

如果分隔符需要在模式内匹配,则必须使用反斜线进行转义。如果分隔符经常出现在模式中,为了提高可读性,选择另一个分隔符是一个好主意。 所以,你的模式应该是这样的:

([^(folder)])/images/flash
[],你必须使用[^(文件夹)]是指定字符集,而不是整个单词。它更好地使用简单的模式,而不会使搜索模式复杂化。

%^/folder/images/flash%
这更简单。 I am using % as delimiter for readability.不使用#,因为stackoverflow将它视为标题:P。