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 :

recherche et replacement dans une chaine de caractère [RegEx]


Sujet :

Langage PHP

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 347
    Points : 136
    Points
    136
    Par défaut recherche et replacement dans une chaine de caractère
    bonjour,

    j'ai une chaine de caractère qui a ce modèle là :
    "fiche.php?id=45"

    je voudrais la remplacer par
    "fiche-45.html"

    le problème c'est que le chiffre varie, donc je ne sais pas comment faire. c'est pour faire de la réécriture de lien.

    il faudrait une fonction genre super_str_replace("fiche.php?id=*","fiche-*.html") ou * symboliserait un chiffre quelconque.

    avez-vous une idée?

    merci de votre aide.

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    preg_replace, of course !
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    voir meme un preg_match...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    preg_match("#fiche\.php\?id=([0-9]*?)#", $url, $matches);
    new_url = 'fiche-'.$matches[1].'.html';
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  4. #4
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $out = preg_replace('#fiche\.php\?id=([0-9]+)#', 'fiche-$1.html', $in);
    Je ne puis que vous recommender le cours : Initiation aux expressions régulières.

    @gloubi : je ne suis pas sûr que supprimer le comportement gourmand de l'expression soit une bonne idée. De plus, il y a une option pour cela (U).


    Julp.

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 347
    Points : 136
    Points
    136
    Par défaut lol
    c'est aussi simple que ça ?
    moi qui pensait faire une boucle énorme sur la valeur numérique...

    Je crois qu'il va falloir que je retrouve mes cours d'automates pour comprendre les exp reg.

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    arf, j'avoue que j'ai eu la flemme de me repencher sur la syntaxe du preg_replace pour faire un exemple alors que j'avais celle du preg_match en tête...

    heuuu d'ailleur, c'est pas \\1 pour le parametre (au lieu de \1) ?
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

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

Discussions similaires

  1. Rechercher un mot dans une chaine de caractères
    Par zellinho dans le forum SAS Base
    Réponses: 4
    Dernier message: 14/03/2013, 09h52
  2. [RegEx] Recherche de terme dans une chaine de caractère
    Par Sekigawa dans le forum Langage
    Réponses: 3
    Dernier message: 24/07/2009, 16h06
  3. Recherche de texte dans une chaine de caractères
    Par julien20vt dans le forum Oracle
    Réponses: 7
    Dernier message: 19/12/2006, 10h02
  4. recherche de mots dans une chaine de caractères
    Par jeanfrancois dans le forum Langage
    Réponses: 5
    Dernier message: 10/02/2006, 10h47
  5. [VB.NET] Recherche dans une chaine de caractères
    Par Pleymo dans le forum Windows Forms
    Réponses: 12
    Dernier message: 09/04/2005, 10h25

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