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 :

Motif <br/> pour preg_replace [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 625
    Par défaut Motif <br/> pour preg_replace
    Bonjour

    Je cherche à remplacer les <br/> d'un texte par des sauts de lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       $motif[0]='/&nbsp;/';
       $remplacement[0]=' ';
       $motif[1]='/<br/';
       $remplacement[1]='
    ';
       $champ[8]=preg_replace($motif, $remplacement, $champ[8]);
    Mon problème, c'est que comme ça, je ne remplace que les <br et si je mets $motif[1]='/<br/>/'; ou $motif[1]='/<br///>/'; , j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: preg_replace() [function.preg-replace]: Unknown modifier '>' in /chemin/recup_fic_etu.php on line 40
    Si je mets $motif[1]='/<br//>/';, l'erreur est Unknown modifier '/'

    Que mettre ?
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  2. #2
    Membre chevronné Avatar de makmaoui
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 283
    Par défaut
    Salut,

    si tu fais un simple remplacement tu peux utiliser la fonction str_replace(), cela va donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
     
    $chaine = str_replace('<br/>' , "\n" , $chaine);
     
    ?>

  3. #3
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 625
    Par défaut
    Merci

    Ça marche, mais j'ai l'impression d'avoir contourné le problème

    Je trouverais beaucoup plus joli d'avoir une commande de moins avec le preg_replace !
    Je cherche donc encore l'astuce , mais pour le moment, j'ai quelque chose qui marche !
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  4. #4
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 625
    Par défaut
    J'ai un problème plus grave pour la transformation inverse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      /*$motif[0]='/&nbsp;/';
      $remplacement[0]=' ';
      $motif[1]="/<br////>/";
      $remplacement[1]="\n";*/
      $info=str_replace(" ", "<br/>" , $info);
      $adresse=str_replace("\n" , "<br/>" , $adresse);
      $info=str_replace(' ',"&nbsp;" , $info);
      $adresse=str_replace(' ',"&nbsp;" , $adresse);
    La transformation de l'espace en &nbsp; ne marche même pas avec preg_replace
    Mais dans certains cas, il est pire... Parfois, même après le remplacement il me reste un saut de ligne : je me trouve avec alors que j'aurais souhaitéMais pas dans tous les cas !!!!

    preg_replace est beaucoup plus intéressant dans mon cas car je traite plusieurs chaînes en même temps !

    J'espère que la nuit va porter conseil ! Bonne nuit à tous
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 714
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 714
    Par défaut
    Citation Envoyé par troumad Voir le message
    preg_replace est beaucoup plus intéressant dans mon cas car je traite plusieurs chaînes en même temps !
    "str_replace" permet aussi ça en mettant des tableaux comme arguments
    par contre tu as besoin de connaitre la liste entière des modifications possibles. est ce que tu as juste besoin de modifier "<br>" et "<br/>" ou bien tu dois aussi traiter <bR> ou "<br />" par exemple ?

  6. #6
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 625
    Par défaut
    Bonjour

    Pour les changements, c'est juste :
    - <br/> => saut de ligne
    - &nbsp; => espace
    Il n'y aura rien autre.

    Je me dis de plus en plus qu'il faudra que je cherche à comprendre les expressions régulières ! À quand le courage final ?
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

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

Discussions similaires

  1. [RegEx] Regex pour preg_replace avec exclusion
    Par Aqua-Passion.com dans le forum Langage
    Réponses: 2
    Dernier message: 17/07/2011, 21h41
  2. Réponses: 0
    Dernier message: 29/12/2008, 16h18
  3. Réponses: 0
    Dernier message: 29/12/2008, 16h18
  4. [RegEx] Motif simple mais introuvable pour PCRE
    Par Tchupacabra dans le forum Langage
    Réponses: 15
    Dernier message: 09/06/2008, 12h51
  5. [RegEx] Affichage des balises pour preg_replace
    Par freedev dans le forum Langage
    Réponses: 4
    Dernier message: 28/06/2007, 16h26

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