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 :

Problème de détection saut de ligne


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 144
    Points
    144
    Par défaut Problème de détection saut de ligne
    Bonjour

    J'ai voulu détecté le saut de ligne dans un textarea avec php
    j'ai utilisé ça $comment=str_replace("\n"," < br /> ",$comment);
    il me remplace bien le retour chariot \n par un br
    Malheureusement je récupère les champs de la base de données pour les mettre en forme en xml et xslt

    extrait du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $doc = domxml_new_doc("1.0");
     
    $root = $doc->create_element("FICHE");
    $root = $doc->append_child($root);
     
    while($ligne = mysql_fetch_array($result))
    {
     $record = $doc->create_element("TABLE");
     $record = $root->append_child($record);
     
     for ($j=0;$j<$num;$j++)
     {
         $titre = $doc->create_element("TITRE");
         $titre = $record->append_child($titre);
     
         for ($i=0;$i<mysql_num_fields($result);$i++)
         {
          $nom_col=mysql_field_name($result,$i);
          $field = $doc->create_element($nom_col);
          $field = $titre->append_child($field);
     
          $champ=mysql_result($result,$j,$i);
          $champ=str_replace("\n"," '<br />' ",$champ);
          $text = $doc->create_text_node(utf8_encode($champ));
          $text=$field->append_child($text);
    mais voila le résultat du textarea quand j'ai mis en forme:
    coucou <br /> coucou <br /> <br />

    dans le fichier xml:

    <commentaire>coucou&#xD; &lt;br /&gt; coucou&#xD; &lt;br /&gt; &#xD; &lt;br /&gt; </commentaire>

    dans la textarea j'avais saisi

    coucou
    coucou

    Comment faire pour que le fichier xml crée s'affiche corectement ( COUCOU
    COUCOU )
    Merci d'avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Salut,

    Pour les sauts de ligne, je te conseille d'utiliser la fonction nl2br.

    3ème ligne de ton code en partant du bas, remplace par => $champ=nl2br($champ);

    Essaye, je garantis rien

  3. #3
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    bah oui le saut de ligne d'un textarea c nl2br(); il me semble
    Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
    Nicolas Jaar, Paul Kalkbrenner, Marek Hermann

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 144
    Points
    144
    Par défaut bin non
    J'ai déjà essayer avec la fonction nl2br()
    Ca me remplace bien le \n par <br/> comme avec mon str_replace
    sauf que dans mon fichier xml créer il m'affiche ; &lt;br /&gt; au lieu de sauter une ligne
    Dans mon fichier xml si je remplace manuellement ; &lt;br /&gt; par <br /> il reconnait la balise br il faudrait que je trouve un moyen pour qu'il ne prenne pas mais > et< pour des caractères spéciaux. J'ai essayé auusi de remplacer \n par
    ; &lt;br /&gt; mais c pareil il m'affiche ; &lt;br /&gt; au lieu de sauter la ligne.

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Tout d'abord une remarque, votre str_replace n'est pas portable à cause du \n (Windows c'est \r\n et si je ne fais pas d'erreur \r pour Mac).

    Vous n'auriez pas un htmlentities() ou htmlspecialchars() qui traînent quelque part ?


    Julp.

  6. #6
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Le code PHP est dans ton fichier XML ? Si oui as tu mis les balises <?php ?> ?
    Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
    Nicolas Jaar, Paul Kalkbrenner, Marek Hermann

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 144
    Points
    144
    Par défaut Php pour créer xml
    En fait j'utilise php avec domxml pour récupérer tout les champs de ma base de donnée et les mettre en forme grâce a xslt.En faite php me créer le fichier xml
    . Mais je n'arrive pas a lui dire que mon champ qui correspondait a la saisie d'un textarea il faut qu'il détecte le \n et me le mette en <br /> mais je n'y arrive pas

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 161
    Points : 71
    Points
    71
    Par défaut
    pourquoi utilise tu domxml pour faire ça?

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 144
    Points
    144
    Par défaut On me la suggérer
    Bin on me la suggérer et ça marche bien
    J'ai réussi a détecter le saut de ligne mais le problème maintenant c les caractères accentués

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

Discussions similaires

  1. problème cat et saut de ligne
    Par tangara001 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 01/08/2010, 13h27
  2. Problème avec les sauts de ligne
    Par Pascale38 dans le forum Flex
    Réponses: 2
    Dernier message: 12/12/2008, 10h41
  3. problème avec les sauts de ligne dans une string
    Par hexdoc dans le forum Langage
    Réponses: 6
    Dernier message: 02/05/2008, 15h28
  4. [Photoshop] Problème avec les sauts de lignes
    Par programmerPhil dans le forum Webdesign & Ergonomie
    Réponses: 3
    Dernier message: 31/05/2006, 17h16
  5. [DOM] Problème de suppression sauts de lignes après modification XML
    Par chabada dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 15/06/2005, 13h46

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