Bonjour a tous,
Premier post sur le forum pour moi donc si je me plante de section ou si la syntaxe est moche/incorrect..hésitez pas(en restant cool ).
Voici mon problème:
Dans un ma page, j'ai une zone de texte dans laquelle on peut renseigner tout et n'importe quoi. Dont des URL.
Un fois envoyé, le texte est envoyé en base de donné puis récupéré par la vue sous forme html.
J'ai fait une fonction pour que les '\n' entré dans la zone de texte soient transformé en <br> ou </br> de manière à afficher le saut de ligne.
Et c'est là que j'ai mon problème:
=================SIMULATION==========================================================================================
Texte dans le textarea du formulaire:
Bonjour'\n'J'ai un problème: http://www.developpez.net/forums/newthread.php?do=newthread&f=237'\n'C'est qu'il n'y a pas d'espace entre le lien et le '\n'.
Rendu
Bonjour
J'ai un problème: http://www.developpez.net/forums/newthread.php?do=newthread&f=237C'est qu'il n'y a pas d'espace entre le lien et le '\n'.
=================FIN SIMULATION======================================================================================
En effet, le <br> généré n'a pas d'espace et je ne sais pas comment modifier mon expression régulière pour récupéré seulement le lien avant le <br> et non pas le reste qui est souligné.
Fonction & Regex utilisée:
Si vous avez une idée hésitez pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public function getURL() { $in = array( '`((?:https?|ftp)://\\S+)(\\s|\\z)`', '`([[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*\.([a-z]{2,4}))`' ); $out = array( '<a href="$1">$1</a>$2', '<a href="mailto:$1">$1</a>' ); echo preg_replace($in, $out, $this->contenu); }
Partager