PHP preg_replace - www ou http://

Vraiment coincé sur ce qui semble être quelque chose de simple. J'ai une chatbox/shoutbox où il peut être arbitraire Url saisie. Je veux trouver chaque URL (séparés par des espaces) et l'envelopper dans des balises.

Exemple: Harry you're a http://google.com wizard! = Harry you're a $lhttp://google.com$l wizard!

Exemple: Harry you're a http://www.google.com wizard! = Harry you're a $lhttp://www.google.com$l wizard!

Exemple: Harry you're a www.google.com wizard! = Harry you're a $lwww.google.com$l wizard!

Désolé si c'est un daft question; je suis juste essayer de faire quelque chose à travailler et je ne suis pas php expert 🙁

l'expression régulière doit être /(http:\/\/)(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
Quand je l'utilise avec: $chat = preg_replace($old_words, $new_words, $chat); - je obtenir $lhttp://$l $oldwords est: '/(http:\/\/)(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/' et $new_words est: '$l$1$l'
essayez d'ajouter ce commentaire dans votre question au lieu
Vous avez une erreur de syntaxe, il devrait être You're a wizard, Harry
Je vois ce que vous avez fait, je l'aime 😉

OriginalL'auteur Matthew | 2011-05-29