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 :

Remplacer les sauts de ligne par \n dans un XML via PHP ?


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut Remplacer les sauts de ligne par \n dans un XML via PHP ?
    Bonjour,

    j'ai posté un message dans la section Flash du forum.

    Après quelques recherches, il s'avère que le probème se situerait du coté PHP. Voila pourquoi je me permet de poster ici.

    Voici le lien vers le post d'origine : http://www.developpez.net/forums/vie...710604#2710604
    (Pour vous situer dans le problème).
    En bref, il s'agit d'un script, sous FLASH MX 2004, qui va saisir des données entrée dans l'interface Flash, les écrires dans un fichier XML via un script PHP.

    Cependant, lorsque je fais des retours à la ligne avec la touche [ENTER], il m'affiche également ces retours à la la ligne.
    J'aimerais en fait, remplacer ces retours à la ligne par des \n pour que dans mon fichier XML, chaque NEWS, chaque MESSAGE, soit sur la même ligne et pas étendu sur plusieurs lignes différentes.

    Un peu comme ceci :
    http://php.developpez.com/faq/?page=...#chaines_nl2br
    en faisant le contraire, en remplaçant les SAUT DE LIGNES par des \n !

    Une idée d'une commande qui existe pour faire ça ???

    Merci d'avance ...

  2. #2
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    en viant le \n a l'insert dans le fichier xml ?

    $str=str_replace("\n",' ',$str);

  3. #3
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par chaced
    en viant le \n a l'insert dans le fichier xml ?

    $str=str_replace("\n",' ',$str);
    Non non, justement.

    Il faut que je mette des \n à la place de mes Saut de ligne !

    Exemple dans mon fichier XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <livredor date="Lundi 20 Mars 2006 17:28:18" nom="Testeur" email="test@test.com" message="Ligne 1
    Ligne 2
    Ligne 3" />
    Le remplacer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <livredor date="Lundi 20 Mars 2006 17:28:18" nom="Testeur" email="test@test.com" message="Ligne 1\nLigne 2\nLigne 3" />
    ou par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <livredor date="Lundi 20 Mars 2006 17:28:18" nom="Testeur" email="test@test.com" message="Ligne 1<br>Ligne 2<br>Ligne 3" />

    Pour qu'il s'affiche sur une seule ligne dans mon fichier XML.

    Et de telle façon à ce qu'il s'affiche avec les SAUTs DE LIGNE aux bons endroits lorsqu'il est lu par l'interface FLASH, dans le champs texte dynamique.

  4. #4
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Essaies ptete avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace("\r\n","\n",$str);

  5. #5
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    Erf, le problème c'est que ca ne fonctionne pas

    j'ai mis ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <livredor date="Mardi 21 Mars 2006 18:40:00" nom="looool" email="lol@lol.lol" message="Ligne 1 <br />Ligne 2" />
    Ca ne fonctionne même pas !!!! Il ne m'affiche même plus mon message.

    j'ai essayé avec :


    <br />
    \n
    <\n>
    <\n />


    rien ne fonctionne

  6. #6
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Qu'as-tu mis pour le str_replace ?

  7. #7
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    C'est bon, j'ai mis ceci, et ca fonctionne :

    Donc &lt; pour simuler le < et &gt; pour simuler le > !

    Donc voila, il faudrait que je remplace les sauts de ligne effectués avec la touche ENTER par ceci &lt;br&gt;

  8. #8
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    FAUX ESPOIR !

    J'ai mis ceci dans mon fichier PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace("\r\n","&lt;br&gt;",$a_renvoyer);
    Sachant que $a_renvoyer est ma chaine saisie avec la méthode POST.


    Ca fonctionne pour l'ajouter ... mais lorsque je vais dans mon fichier XML, voici ce que j'obtiens :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <livredor date="Mardi 21 Mars 2006 18:58:50" nom="A" email="A@A.A" message="A
    B
    C" />
    au lieu d'avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <livredor date="Mardi 21 Mars 2006 18:58:50" nom="A" email="A@A.A" message="A&lt;br&gt;B&lt;br&gt;C" />

  9. #9
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Ce que je ne comprends pas c'est que le message soit un attribut de ta balise livredor ???

    ce ne serait pas plus simple de le placer entre <livredor> et </livredor> ???
    Consultant idéaliste.

  10. #10
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par macbook
    Ce que je ne comprends pas c'est que le message soit un attribut de ta balise livredor ???

    ce ne serait pas plus simple de le placer entre <livredor> et </livredor> ???
    Et bien, j'ai plus facile de noter l'ordre d'affichage de mes champs ...

    Dans mon livre d'or, cela s'affiche comme ceci :

    Code X : 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
    Mardi 21 Mars 2006 18:59:20
    Nom : Z
    Email : Z@Z.Z
    
    X
    Y
    Z
    
    ____
    
    Mardi 21 Mars 2006 18:58:50
    Nom : A
    Email : A@A.A
    
    A
    B
    C
    
    ____

  11. #11
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Il faudrait voir dans la norme XML si ce que tu veux faire est "valide".
    Je ne vois pas en quoi cela influe l'affichage de l'ordre des message ???
    Consultant idéaliste.

  12. #12
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    Faux espoir ... j'ai crié TROP VITE sans tout re-vérifier !!!!

    En gros, ca fonctionne avec l'AJOUT, lorsque j'ajoute la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace("\r\n","&lt;br&gt;",$a_renvoyer);
    dans mon fichier PHP, mais lorsque j'ouvre mon fichier XML, voici ce que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <livredor date="Mardi 21 Mars 2006 18:58:50" nom="A" email="A@A.A" message="A
    B
    C" />
    au lieu d'avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <livredor date="Mardi 21 Mars 2006 18:58:50" nom="A" email="A@A.A" message="A&lt;br&gt;B&lt;br&gt;C" />
    [/b]

  13. #13
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Et avec des quotes simples

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace("\r\n",'&lt;br&gt;',$a_renvoyer);
    (Ce qui est entre guillemets est interpreté)

  14. #14
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par Linaa
    Et avec des quotes simples

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace("\r\n",'&lt;br&gt;',$a_renvoyer);
    (Ce qui est entre guillemets est interpreté)
    Hello,

    Hélas non, même en mettant les simples quotes, ca ne change rien.

    Il me laisse les sauts de ligne dans mon fichier XML a la place de mettre <br>

  15. #15
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    Je viens d'essayer avec la fonction ereg_replace.

    Ca ne donne toujours rien ! Il interprete directement le <br> comme étant un saut de ligne, et il me fait ce saut de ligne dans mon fichier !!!! GRRRRR

    A noter, que j'ai même essayer de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $br='aaa';
    str_replace("\r\n",$br,$a_renvoyer);
    ou encore ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $br="aaa";
    str_replace("\r\n",$br,$a_renvoyer);
    Et apparemment, ce serait la commande qui ne serait pas interpretée !!!!

    Voici mon fichier PHP :

    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
     
    <?
    // Récupération des données via POST
    $a_renvoyer=$_POST["var_envoi"];
     
    $a_renvoyer=stripslashes($a_renvoyer); 
     
    $br='aaa';//'/<br/>';//"&lt;br&gt;";
    str_replace("\r\n",$br,$a_renvoyer);
     
    // Enregistrer les donnees
    $fichier = 'livre.xml';
    $fp=fopen($fichier,"a+");
    fwrite($fp,"$a_renvoyer \n");
    fclose($fp);
    ?>

  16. #16
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    J'ai +/- ciblé le probleme ....

    Cela vient du \r\n qui n'est jamais trouvé !!!

    Car lorsque je mets "x" à la place, il me remplace bien mon x par des "aaa".


  17. #17
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    C'est bon cette fois ci, j'ai trouvé !

    Merci tout d'abord à http://fr2.php.net/manual/fr/function.str-replace.php qui est une VRAIE BIBLE !!!!

    Bref, voici la commande magique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $a_renvoyer=str_replace(Chr(13),"&lt;br&gt;",$a_renvoyer);
    Merciiiiiiiiiiiiiiii

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

Discussions similaires

  1. Remplacer les X des lignes par le nom de Colonne
    Par progscoubi dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 06/03/2014, 11h40
  2. Réponses: 34
    Dernier message: 08/03/2007, 14h51
  3. remplacer les retour de ligne par <br> dans une chaine?
    Par cortex024 dans le forum Langage
    Réponses: 2
    Dernier message: 03/12/2006, 17h22
  4. Remplacer les sauts de ligne
    Par Nicobp dans le forum Langage
    Réponses: 6
    Dernier message: 02/10/2006, 03h30
  5. remplacer des sauts de ligne par '\n'
    Par Miksimus dans le forum Général Python
    Réponses: 5
    Dernier message: 18/07/2005, 10h01

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