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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    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 averti
    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
    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 émérite 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
    Par défaut
    bah oui le saut de ligne d'un textarea c nl2br(); il me semble

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    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
    Membre expérimenté

    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
    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 émérite 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
    Par défaut
    Le code PHP est dans ton fichier XML ? Si oui as tu mis les balises <?php ?> ?

+ 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