Page 1 sur 1

Ouvrir la page dans un nouvel onglet

Posté : 22 nov. 2015, 16:02
par S66
Bonjour,
J'utilise preg_replace pour remplacer les liens automatiquement, comme ceci:
$msg = preg_replace("#((?:ht)tps?://[^\s]+?)(\s|$)#i", '<a href="$1" target="_blank">$1</a>', $msg);
Mais, quand je clique dessus, la page ne s'ouvre pas dans un nouvel onglet, alors je regarde le code sur ma page, et je vois que le lien est:
<a href="(lien)" &nbsp;target="_blank">(lien)</a>
Pourquoi ce nbsp et comment le virer ?
Merci.
Cordialement.

Edit: Maintenant, les liens ne marchent carrément plus, le code me renvoie <a&nbsp;href="(lien)" &nbsp;target="_blank">(lien)</a>

Re: Ouvrir la page dans un nouvel onglet

Posté : 23 nov. 2015, 10:30
par Ryle
Hello !

Que fais tu d'autre sur la variable $msg avant de l'afficher ?

Le &nbsp; est le code html qui désigne un espace insécable (non breaking space) et qui permet d'éviter les retours à la ligne non désirés. Il semble que ceux-ci soient intégrés dans tout ton message, les textes mais également les balises... si c'est un comportement que tu souhaites conserver, il vaut mieux utiliser du css (white-space: nowrap) qui n'affectera que le texte apparent et pas le code :)

Re: Ouvrir la page dans un nouvel onglet

Posté : 23 nov. 2015, 18:32
par S66
Je fais quelques preg_replace pour les smilies et... ceci qui je pense cause l'erreur:
$msg = wordwrap($msg, 70, "&nbsp;", false);
Il était bien caché...
Mais, je ne vois pas où les retours à la ligne pourrait être intégrés dans mon message...

Sinon, j'ai remplacé le &nbsp; par un simple espace, maintenant, ça marche ! Merci.
Résolu.