pb copier/coller dans 1 textarea

yann214
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 370
Inscription: 17 Nov 2005

pb copier/coller dans 1 textarea

Message le Ven Aoû 04, 2006 16:04

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 !!


dmathieu
Modérateur
Modérateur
 
Messages: 7245
Inscription: 9 Jan 2004

Message le Ven Aoû 04, 2006 16:06

Code: Tout sélectionner
$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 />

yann214
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 370
Inscription: 17 Nov 2005

Message le Ven Aoû 04, 2006 16:42

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: Tout sélectionner
<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>

Zim'
WRInaute impliqué
WRInaute impliqué
 
Messages: 804
Inscription: 27 Avr 2006

Message le Ven Aoû 04, 2006 17:53

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);

yann214
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 370
Inscription: 17 Nov 2005

Message le Dim Aoû 06, 2006 23:21

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...

yann214
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 370
Inscription: 17 Nov 2005

Message le Lun Aoû 07, 2006 0:45

ç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...


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités