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 :

Mettre des <li> a la place des retour chariot depuis B [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut Mettre des <li> a la place des retour chariot depuis B
    Salut a tous,

    J'ai un petit soucis.

    VOila ce que je veux faire:
    Dans ma base de donné j'ai un champs qui liste plusieurs mot ainsi:
    mot 1
    mot 2
    mot 3...

    je suouhaiterais remplacer les retour chariot par des <li>.

    J'ai donc récupérer les mots de la BDD en faisant un nl2br pour avoir les retours chariots. Ensuite je fait un :
    $Staff=preg_replace('!<br>!i','<li>',$Staff);

    Mais ca ne fonctionne pas .

    Vous avez une idée?

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, il me semble que lorque tu appliques la fonction nl2br, elle ajoute des <br /> (ou <br/>) et non <br>. Autre remarque, utilises plutôt str_replace plutôt que preg_replace dans ton cas (vu que tu n'utilises pas d'expression régulière). Ton code devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Staff=str_replace('<br />','<li>',$Staff);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Staff=str_replace('<br/>','<li>',$Staff);
    Bon développement ;-)

  3. #3
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    j'ai pas essayé, mais tu dois pouvoir aussi agir directement avec chr().]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Staff=str_replace(chr(13),'<li>',$Staff);

  4. #4
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Merci, mais en fait je crois que je vais utiliser une expression régulier car en fait il met le </ br> a la fin de chaque ligne. SI on remplace directement pas <li> ca va créer un décalage.

  5. #5
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    J'ai essayer avec ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Staff=preg_replace('!^([a-z0-9-/\_]+)<br />$!i','<li>$1',$Staff);
    mais ca ne marche pas.

  6. #6
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Citation Envoyé par Death83
    Merci, mais en fait je crois que je vais utiliser une expression régulier car en fait il met le </ br> a la fin de chaque ligne. SI on remplace directement pas <li> ca va créer un décalage.
    par "directement" je voulais dire sans la fonction nl2br()

  7. #7
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    a oki j'essai

  8. #8
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Ca marche mais ca garde le décalage comme avec str_replace.
    Il faut donc opter pour la regex (qui ne marche pas).

  9. #9
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Et si tu faisais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Staff = ... // Contenu de ton champ
    $Staff = '<li>'.$Staff;
    $Staff = str_replace('<br />','<li>',$Staff);
    :

  10. #10
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Citation Envoyé par Nesmontou
    Et si tu faisais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Staff = ... // Contenu de ton champ
    $Staff = '<li>'.$Staff;
    $Staff = str_replace('<br />','<li>',$Staff);
    :
    J'ai essayé ca tout a l'heure mais ca rajoute un li de trop a la fin .

  11. #11
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    pour preg_replace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    $chaine = "je fais un essai<br/>de remplacement<br/>dans une chaine";
    $reg = "`<br\s?/>`";
    echo preg_replace($reg,'<li>',$chaine);
    ?>

  12. #12
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Citation Envoyé par ska_root
    pour preg_replace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    $chaine = "je fais un essai<br/>de remplacement<br/>dans une chaine";
    $reg = "`<br\s?/>`";
    echo preg_replace($reg,'<li>',$chaine);
    ?>
    OUi mais je veut utiliser les variables des regex. Car la aussi je vais avoir un décalage. EN fait ce que je veut faire c'est récuperer le texte avant le <br /> et remplacer ke tout par le texte précédé de <li>.

    Voius voyez ce que je veut dire?

  13. #13
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    heuuuu non désolé

  14. #14
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    En fait je veut récuperer le texte qu'il y a avant chaque balise <br />.
    (.*+)<br />
    ex: le texte<br />

    Puis remplacer ce le texte avant les balise <br /> par le texte lui même précédé de <li> ce qui donnerai:
    <li>le texte.

    <li>$1

    j'ai du fair eune petite erreur dans mon expression réguliere mais je vois pas ou.

  15. #15
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    mouais, je sais que ce n'est pas exactement ce que tu veux mais bon, si tu fais alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    $chaine = "je fais un essai<br/>de remplacement<br/>dans une chaine";
    $reg = "`<br\s?/>`";
    echo "<li>".preg_replace($reg,'<li>',$chaine);
    ?>
    ça va pas ?

  16. #16
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Citation Envoyé par ska_root
    mouais, je sais que ce n'est pas exactement ce que tu veux mais bon, si tu fais alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    $chaine = "je fais un essai<br/>de remplacement<br/>dans une chaine";
    $reg = "`<br\s?/>`";
    echo "<li>".preg_replace($reg,'<li>',$chaine);
    ?>
    ça va pas ?
    bof .

    CA m'enerve pourtant c'est une regex à la C*$. J'avais aucun probleme pour mes REGEX pour faire de l'url rewrting mais la pour remplacer des <br> et <li> je lutte

  17. #17
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    J'ai compris pourquoi la REGEX marche pas. EN fait pour lui il prend tout le texte et considere qu'il n'ya quun <br /> (le dernier).

    Du coup il me met qu'un <li> tout au début.

  18. #18
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    ben moi j'y arrive, a la condition qu'il y ait un <br/> a la fin de la chaine...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    $chaine = "je fais un essai<br/>de remplacement<br/>dans une chaine<br/>";
     
    $reg = "`(.+)?(<br\s?/>)`U";
    echo preg_replace($reg,"<li>$1",$chaine);

  19. #19
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    C'est bon ca marche en fait fallait que j'enleve les ^et $ et que je rajoute le U.

    D'ailleur il signifie qui le U ?

  20. #20
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    http://www.expreg.com/options.php pour les options sur PCRE


    bonne nuit

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

Discussions similaires

  1. rn à la place du retour chariot
    Par vasilov dans le forum Langage
    Réponses: 2
    Dernier message: 29/08/2008, 15h31
  2. mettre en place des webcasts
    Par Neymo dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 12/09/2007, 14h31
  3. Réponses: 16
    Dernier message: 21/07/2007, 11h20
  4. Peut-on mettre en place des séparateurs de milliers en PHP ?
    Par Yagami_Raito dans le forum Langage
    Réponses: 2
    Dernier message: 06/06/2007, 15h00
  5. mettre en place des fenêtres
    Par franco12 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 10/11/2006, 15h27

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