PHP 5.3 Migration eregi_replace()

micronix

Mitglied
Hallo kann mir einer helfen diese funktion in preg_replace umzuschreiben ?
In der Migration von 5.2 auf 5.3 steht folgendes
eregi_replace() (use preg_replace() with the 'i' modifier instead)
Was ich leider nicht so ganz verstehe

PHP:
	function makeClickableLinks($text)
		{
			$text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '<a href="\\1">\\1</a>', $text);
			$text = eregi_replace('(([[:space:]()[{}])|^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\\1<a href="http://\\3">\\3</a>', $text);
			$text = eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})', '<a href="mailto:\\1">\\1</a>', $text);
			return $text;
		}

Liebe Grüße
Sascha
 
Zuletzt bearbeitet:
Das Prinzip ist eigentlich recht einfach: Regulären Ausdruck in Begrenzer setzen, das Begrenzerzeichen selber innerhalb des regulären Ausdrucks maskieren und für das Ignorieren der Groß- und Kleinschreibung das i-Flag setzen.
PHP:
$text = preg_replace('/(?:f|ht)tp:\\/\\/[-a-zA-Z0-9@:%_+.~#?&\\/=]+/', '<a href="\\0">\\0</a>', $text);
$text = preg_replace('/([[:space:][{}]|^)(www\\.[-a-zA-Z0-9@:%_+.~#?&\\/=]+)/', '\\1<a href="http://\\2">\\2</a>', $text);
$text = preg_replace('/[_.0-9a-zA-Z-]+@(?:[0-9a-zA-Z][0-9a-zA-Z-]+\\.)+[a-zA-Z]{2,3}/', '<a href="mailto:\\0">\\0</a>', $text);
 
Zurück