-3

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

ereg_replace:

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

到 preg_replace:

4

2 回答 2

0

不推荐使用的方法是将来会从您正在使用的语言中删除的方法。除非您可以控制语言规范和路线图,否则您没有太多影响力。

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

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

于 2011-12-27T09:04:59.713 回答
0

来自: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。

于 2011-12-27T10:29:46.693 回答