2010-08-16 123 views
1

我现在已经升级我的PHP我得到的警告消息eregi_replaceeregi_replace到的preg_replace转换

能否请你帮我在下面的转换EREG表达预浸?

$str = eregi_replace("[[:space:]]+", " ", $str); 
$text = eregi_replace('<a href=?([^ "\']*)>([^<]*)</a>', '<a href="\\1">\\2</a>', $text); 
$text = eregi_replace('<a href=(\')?([^ "\']*)(\')>([^<]*)</a>', '<a href="\\2">\\4</a>', $text); 
$text = eregi_replace('([[:space:]()[{}])(www.[[email protected]:%_\+.~#?&//=]+)', '\\1<a href="http://\\2" target="_blank">\\2</a>', $text); 
$text = eregi_replace('([_\.0-9a-z-][email protected]([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})', '<a href="mailto:\\1" target="_blank">\\1</a>', $text); 

感谢

回答

2

的转换是非常直接的。他们有一个差异列表/ here

您将看到的最大(可能)更改是在模式字符串中添加分隔符。

+0

我做到了,但我得到错误警告:preg_replace()[function.preg-replace]:未知修饰符'?' #([[:space:]()[{}])(www。[ - a-zA-Z0-9 @:%_ \ +。〜#?&// =] +)#i – Maximus 2010-08-16 15:40:30

+0

@ jason4,你正在使用#作为你的分隔符 - 也是你的模式。选择另一个分隔符或转义模式内的散列标记'\#'。 – jasonbar 2010-08-16 15:45:11

相关问题