2010-08-16 6 views
1

J'ai mis à jour php maintenant je reçois des messages d'avertissement pour eregi_replaceeregi_replace à la conversion de preg_replace

Pouvez-vous s'il vous plaît me aider à convertir l'expression suivante ereg à preg?

$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); 

Merci

Répondre

2

La conversion est assez simple. Ils ont une liste/explication des différences here

Le plus grand changement (seulement, peut-être) que vous allez voir est l'ajout de délimiteurs aux chaînes de modèle.

+0

Je l'ai fait mais j'obtiens une erreur Attention: preg_replace() [function.preg-replace]: Modificateur inconnu '?' # ([[: space:]() [{}]) (www. [- a-zA-Z0-9 @:% _ \ +. ~ #? & // =] +) # i – Maximus

+0

@ jason4, vous utilisez # comme délimiteurs - et aussi dans votre modèle. Choisissez un autre délimiteur ou échappez '\ #' à la marque de hachage à l'intérieur du motif. – jasonbar