pb copier/coller dans 1 textarea

WRInaute occasionnel
Salut,

Nouveau problème :

j'ai un textarea pour que mes utilisateurs puissent saisir un texte, mais s'il font un copier/coller dedans, il y a des retours à la ligne lorsque j'enregistre la chaîne correspondante en php dans un champs mysql.

et naturellement :) je ne veux pas garder ces retours à la ligne.

Existe-til un moyen (ou une fonction) pour les enlever automatiquement ?

merci !!
 
WRInaute accro
Code:
$str = str_replace("\n", '', $str);
Ceci devrait suffit ($str est ton texte)

Mais ces retour à la ligne ne seront pas affichés sur ta page hein, c'est pas des <br />
 
WRInaute occasionnel
j'ai essayé mais résultat négatif.

En fait le problème c'est que je n'ai pas de \n de visible dans ma chaîne, j'ai juste des retours à la ligne

en gros si je fais afficher le code source du textarea correspondant dans ma base j'ai par exemple avec un texte choppé sur yahoo :

Code:
<textarea name="fields[multi_edit][+%60ACT_ID%60+%3D+%27683%27][CONTENT]" rows="7" cols="40" wrap="virtual" dir="ltr" id="field_6_3"
                    onchange="return unNullify('CONTENT', '[multi_edit][+%60ACT_ID%60+%3D+%27683%27]')" tabindex="7">&lt;div align=\&quot;justify\&quot;&gt;&lt;p&gt;&lt;a href=\&quot;http://fr.news.yahoo.com/m/moteurs.html\&quot;&gt;Google&lt;/a&gt;
a discrètement implanté un filtre anti malware dans son moteur, qui
sort du coup un peu plus de la neutralité. L’information a été repérée
par le site spécialisé &lt;a href=\&quot;http://fr.rd.yahoo.com/partners/pcinpact/SIG=12a7f0ruo/*http%3A//www.pcinpact.com/link.php?url=http%3A%2F%2Fblog.outer-court.com\&quot;&gt;blog.outer-court&lt;/a&gt;.
Concrètement, lorsque l’on formule une requête particulière puis que
l'on clique sur un résultat, la cible est analysée via une base de
données. En cas de correspondance, un message en anglais indique : « &lt;em&gt;Attention, le site que vous êtes sur le point pour visiter peut nuire à votre ordinateur ! &lt;/em&gt;»
et le moteur de suggérer de revenir sur ses pas ou de tenter une autre
recherche. A défaut, on peut toujours forcer le barrage et opter pour
le site déconseillé. &lt;/p&gt;
</textarea>
 
WRInaute impliqué
Salut,

Dans mysql, quand tu affiche les données, et meme dans le textarea tu ne vois pas de \n, seulement ils y sont, et sont remplacé par des sauts de ligne.

Quand tu réaffiche le contenu de ta bdd sur une page html, tu n'aura pas ces sauts de ligne, pour les avoir il faut que tu fasse un nl2br() en php

Si vraiment tu ne veux pas ces sauts de ligne tu fais:

$str = str_replace("\n", '', $str);
 
WRInaute occasionnel
le problème c'est que cette fonction...

$str = str_replace("\n", '', $str);

...ne m'enlève rien du tout !

Si je regarde le code source de ma page html, je vois que le texte de mon article est toujours sur plusieurs lignes avec des sauts de ligne en cours de phrase, etc.

Cela vient du copier/coller dans mon textarea, mais impossible d'enlever ces retours à la ligne...

Si je fais une copie du source vers ultraedit, et que je fais afficher les espaces/tabulations, je vois bien le caractère de fin de ligne là où mes phrases sont tronquées...

Edit 1 : pour info la fonction $texte=nl2br($texte); me remplace bien ces "retours" par des <br>. Il y a donc bien quelque chose mais pas des \n...

Edit 2 : j'ai essayé aussi d'enlever les CHR(10) et CHR(13), marche pas...
 
WRInaute occasionnel
ça avance :

en urlencodant mon texte j'ai vu que ces retours étaient des %0D%04, donc des \r\n

j'ai donc essayé :

$str = str_replace("\r\n", '', $str);

... et ça marche !!!!

Le seul truc c'est que je ne sait pas si c'est une solution universelle, où si quand quelqu'un fait un copier/coller de word, on a '\n', de firefox, on a '\r\n, etc...
 
Discussions similaires
Haut