Supprimer retours à la ligne

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Supprimer retours à la ligne

par AB » 20 févr. 2009, 16:37

Tu peux même simplifier un peu l'écriture en faisant
$TEXTE2 = str_replace("\n", "", str_replace("\r", "", TEXTE2));

par Ryle » 20 févr. 2009, 14:32

A noter, le \n doit être spécifié entre guillemets (") et non entre apostrophes....
Tu obtiendras ainsi le même résultat (et sans t'embêter avec une redondance d'instructions en ascii) :
$TEXTE2 = $_POST["TEXTE2"]; 
$TEXTE2 = str_replace("\r\n", "", $TEXTE2);//windows
$TEXTE2 = str_replace("\n", "", $TEXTE2);
$TEXTE2 = addslashes(htmlentities($TEXTE2));

par scoch » 20 févr. 2009, 13:34

Bonjour et merci pour vos réponses.
Problème réglé avec le remplacement du caractère ASCII, ouf !

Pour ceux qui auraient ce problème et tomberaient sur cette page, voici le traîtement de la chaîne avant entrée en db :
$TEXTE2 = $_POST["TEXTE2"];
$TEXTE2 = str_replace('\n', "", $TEXTE2);//unix
$TEXTE2 = str_replace('\rn', "", $TEXTE2);//mac
$TEXTE2 = str_replace('\r', "", $TEXTE2);//windows
$TEXTE2 = str_replace('\0', "", $TEXTE2);//caractère nul
$TEXTE2 = str_replace(chr(13), "", $TEXTE2);//ASCII Retour chariot
$TEXTE2 = str_replace(chr(10), "", $TEXTE2);//ASCII Saut de ligne
$TEXTE2 = addslashes(htmlentities($TEXTE2));
Merci et bonne journée.

par Ryle » 20 févr. 2009, 13:03

La fonction nl2br ne pourra pas t'aider. En effet, elle se contente d'ajouter des <br /> lorsqu'elle rencontre des \n, et non comme son nom pourrait le faire croire, de les remplacer.

Quoi qu'il en soit, si l'enregistrement dans MySQL présente un retour à la ligne (qui ne serait pas dut à la taille du texte), c'est qu'il y a un \r\n ou un \n présent dans ta chaine. As-tu essayé au moment de l'enregistrement dans ta base de faire un str_replace("\r\n", "", $chaine) et/ou str_replace("\n", "", $chaine)

A noter, le \n doit être spécifié entre guillemets (") et non entre apostrophes....

par edison1986 » 19 févr. 2009, 23:29

Salut

Essai de voir du coté du code ASCII de \n \r

Supprimer retours à la ligne

par scoch » 19 févr. 2009, 22:25

Bonjour,

lorsque j'enregistre en db le contenu d'une textarea (généré avec FCK editeur par exemple), le champ mySql conserve les retours à la ligne qui ne sont exprimés ni par <br /> ni \n ni \r\n...
Je ne suis peut-être pas très précis, voici un exemple :

<p>Premier paragraphe</p>
<p>Second paragraphe</p>

Alors que je voudrais tout sur la même ligne :

<p>Premier paragraphe</p><p>Second paragraphe</p>

Je ne sais pas comment identifier ces fameux retours à la ligne pour pouvoir les supprimer...
J'ai bien essayé avec la fonction nl2br mais ces retours à la ligne ne sont pas des \n...

En fait cela me pose actuellement un problème avec l'utilisation de wz_tooltip qui ne marche plus à cause de ces retours à la ligne.

Si quelqu'un a une idée.
Merci.