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
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
Je vois ce que vous avez fait, je l'aime 😉
/(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
Vous devez vous connecter pour publier un commentaire.
Il y a un article intéressant sur un URL expression régulière. En PHP, ce serait:
Et bien sûr remplacer
[supertag]
et[/supertag]
avec les valeurs appropriées.Si cela a fonctionné pour vous s'il vous plaît marquer que l'on a accepté la réponse de sorte qu'il va aider les autres qui courent.
Quand j'ai copier/coller de votre schéma, je reçois en quelque sorte (à la fin)
«»“”‘’
ces citations dans le milieu transformé en normal entre guillemets. J'utilise dreamweaver. Toutes les suggestions? MerciMerveilleux, merci
cela transforme TOUTES les url et pas seulement celles qui sont entourés par des espaces. Donc, il rompt les liens où l'utilisateur saisi code html inclus url.
OriginalL'auteur Bryan
Vous aurez envie d'utiliser ce qu'on appelle un Expression Régulière.
Vous devez écrire une expression régulière, et ensuite utiliser un de PHP diverses regexp fonctions à faire ce que vous voulez.
Dans ce cas, vous devriez probablement utiliser le preg_replace (), qui trouve une chaîne qui correspond à l'expression régulière et la remplace que vous spécifiez.
L'expression régulière que vous cherchez est particulièrement difficile à écrire, car l'Url peut venir dans de nombreuses formes, mais j'ai trouvé une expression qui devrait faire l'affaire:
Ce sera de sortie:
Vous pouvez voir que le
preg_replace()
fonction de l'URL (et il va trouver plusieurs) dans$text
, et de mettre les balises, j'ai spécifié autour d'elle.OriginalL'auteur Sean Powell
OriginalL'auteur NukeOoVeRQc