IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

saisie de texte / <br/> & \n\r / php mysql


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut saisie de texte / <br/> & \n\r / php mysql
    salut à tous,

    petit soucis de saut de ligne sur une saisie de texte dans un TEXTAREA.....

    contexte:
    -> 1 textarea de saisie libre
    -> stockage en base mysql (champs TEXT)
    -> affichage php dans une autre page

    symptôme:
    -> je saisis par exemple:
    "Extensions de fichiers valides: 7z as asm asp aspx bz2 c cpp cs css doc docx fla gif gz h hpp htm html java jpeg jpg js ods odt pas pdf php pl png psd py.

    attention, taille max = 5 mo!"

    -> il y a donc 2 sauts de lignes: après le '.' et avant "attention"......

    -> dans mon champs mysql on retrouve bien la même chose

    -> pour restituer les sauts de ligne en affichage PHP/HTML simple je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo str_replace("\n\r", "<br/>", $string);
    problème:
    -> j'obtiens
    "Extensions de fichiers valides: 7z as asm asp aspx bz2 c cpp cs css doc docx fla gif gz h hpp htm html java jpeg jpg js ods odt pas pdf php pl png psd py.
    attention, taille max = 5 mo!"

    -> donc sans le saut de ligne entre les 2 paragraphes!

    -> en gros il y a que n-1 sauts de ligne pris en compte

    -> si je veux vraiment afficher
    "Extensions de fichiers valides: 7z as asm asp aspx bz2 c cpp cs css doc docx fla gif gz h hpp htm html java jpeg jpg js ods odt pas pdf php pl png psd py.

    attention, taille max = 5 mo!"

    -> je dois saisir
    "Extensions de fichiers valides: 7z as asm asp aspx bz2 c cpp cs css doc docx fla gif gz h hpp htm html java jpeg jpg js ods odt pas pdf php pl png psd py.


    attention, taille max = 5 mo!"

    -> soit un saut de ligne supplémentaire...............

    pourquoi?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour :
    pour restituer les sauts de ligne en affichage : nl2br()
    Retourne string après avoir inséré "<br />" ou '<br>' devant toutes les nouvelles lignes (\r\n, \n\r, \n et \r).

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    le saut de ligne doit être plutôt \r\n que \n\r
    mais il existe déjà la fonction nl2br() pour faire ça.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Invité
    Invité(e)
    Par défaut
    Grilled, Sabotage !

  5. #5
    Membre actif Avatar de Ethan 0x21
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2006
    Messages : 120
    Par défaut
    Ce qui explique la source du probléme car si on est en présence de :

    \n\r\n\r

    Et que str_replace remplace le \n\r par le tag <br/>, ainsi le résultat est :

    \n<br/>\r

    D'ou le résult final avec n-1 saut de ligne.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    J'avais effectivement commencé par nb2lr()...

    MAIS cela induit un problème encore pire, et lié à la largeur du TEXTAREA!
    -> il transforme aussi en <br/> les fins de lignes dus au formatage de la largeur du TEXTAREA

    Heu... comment dire?

    Imaginons un TEXTAREA de largeur max 31 caractères.

    je saisis donc:

    "Extensions de fichiers valides:*
    7z as asm asp aspx bz2 c cpp*
    cs css doc docx fla gif gz h *
    hpp htm html java jpeg jpg js*
    ods odt pas pdf php pl png *
    psd py.

    attention, taille max = 5 mo!"

    * symbolisant les passages à la ligne automatiques du TEXTAREA et dus à la largeur max de 31 caractères != saut de ligne (ENTER)

    Or br2nl() va aussi convertir ces * en <br/>

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    Citation Envoyé par Ethan 0x21 Voir le message
    Ce qui explique la source du probléme car si on est en présence de :

    \n\r\n\r

    Et que str_replace remplace le \n\r par le tag <br/>, ainsi le résultat est :

    \n<br/>\r

    D'ou le résult final avec n-1 saut de ligne.
    si tu me disais remplacer \r\n par <br/> dans une chaine \n\r\n\r je serais d'accord avec toi......

    mais avec \n\r je ne comprends pas ton raisonnement..........

  8. #8
    Invité
    Invité(e)
    Par défaut
    Imposer la largeur d'un textarea N'a JAMAIS entrainé des passages à la ligne !?

    Fi du blabla ; montre des lignes de code :
    • code du formulaire + <textarea> ?
    • code de récupération du formulaire + enregistrement en Bdd (comment ?)
    • code de récupération de l'enregistrement en Bdd ?
    • code de ré-affichage ?

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Imposer la largeur d'un textarea N'a JAMAIS entrainé des passages à la ligne !?
    Ben SI justement!!

    -> avec un wrap="hard" (que j'ai passé à soft maintenant) par exemple................

    -> ........... ce qui était bien le problème avec nl2br()!

    Donc pour les autres qui ignorent également ce point:
    -> wrap="soft" + nl2br() = OK
    -> wrap="hard" + nl2br() = HS


  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    En même temps, c'est le comportement attendu pour wrap="hard"...

    Utiliser une propriété sans connaitre son comportement, c'est s'exposer à ce genre de mésaventure !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Saisie du texte dans Msgbox
    Par tamyme dans le forum Access
    Réponses: 2
    Dernier message: 11/10/2005, 14h53
  2. [MS-DOS] Saisie de texte
    Par Furius dans le forum Scripts/Batch
    Réponses: 10
    Dernier message: 01/10/2005, 19h27
  3. Réponses: 2
    Dernier message: 08/08/2005, 11h27
  4. [c#]Champs de saisie de texte
    Par Verboz dans le forum ASP.NET
    Réponses: 5
    Dernier message: 03/05/2005, 15h01
  5. saisi champs texte
    Par j2zetka dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/12/2004, 14h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo