我有这个警告,已弃用:函数 ereg_replace() 已弃用,请帮助我。
ereg_replace:
ereg_replace('([^(folder)])/images/flash', '"/folder/images/flash', $echotemp);
到 preg_replace:
我有这个警告,已弃用:函数 ereg_replace() 已弃用,请帮助我。
ereg_replace:
ereg_replace('([^(folder)])/images/flash', '"/folder/images/flash', $echotemp);
到 preg_replace:
不推荐使用的方法是将来会从您正在使用的语言中删除的方法。除非您可以控制语言规范和路线图,否则您没有太多影响力。
您仍然可以使用该方法,但它可能会在将来的更新中消失,并且通常支持该方法只会建议切换到新的推荐处理方式。
我建议使用 ereg_replace 的替换方法。
来自:ereg_replace
注意:
从 PHP 5.3.0 开始,不推荐使用正则表达式扩展,取而代之的是PCRE扩展。调用此函数将发出 E_DEPRECATED 通知。有关转换为 PCRE 的帮助,请参阅差异列表。
.
小费
preg_replace() 使用 Perl 兼容的正则表达式语法,通常是 ereg_replace() 更快的替代方法。
阅读:PCRE 正则表达式语法
对于您的模式:
使用 PCRE 函数时,需要用分隔符将模式括起来。定界符可以是任何非字母数字、非反斜杠、非空白字符。
常用的分隔符是正斜杠 (/)、井号 (#) 和波浪号 (~)。
如果分隔符需要在模式内匹配,则必须使用反斜杠对其进行转义。如果定界符经常出现在模式中,最好选择另一个定界符以增加可读性。因此,您的模式应如下所示:
([^(folder)])/images/flash
您在 [^(folder)] 中使用的 [] 用于指定字符集而不是整个单词。最好使用简单的模式而不是复杂的搜索模式。
%^/folder/images/flash%
这更简单。
I am using % as delimiter for readability.
不使用 # 因为stackoverflow会将其视为标题:P。