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 :

preg_replace et suppression de paramètre dans url [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut preg_replace et suppression de paramètre dans url
    Bonjour,

    Je voudrais supprimer la variable Itemid=16 dans le lien suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $url = 'index.php?option=com_content&view=section&layout=blog&id=7&Itemid=16';
    $url = preg_replace('#(.+)&Itemid=[0-9]+(.+)#i', '$1$2', $url);
    mais preg_replace ne supprime que le premier chiffre (le 1), je n'arrive pas à comprendre ce qui ne va pas avec ma regex.

    Quelqu'un pourrait m'aider ?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $url = 'index.php?option=com_content&view=section&layout=blog&id=7&Itemid=16';
    $url = preg_replace('#&Itemid=[0-9]+#i', '', $url);

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Points : 136
    Points
    136
    Par défaut
    En fait le problème c'est que (.+) tiens compte des autres chiffres...

    $url = preg_replace('#(.+)&Itemid=[0-9]+$#i', '$1$2', $url);
    S'il n'y a rien d'autre après.
    S'il y a quelque chose après:
    $url = preg_replace('#(.+)&Itemid=[0-9]+&(.+)#i', '$1$2', $url);
    S'il peut y avoir quelque chose après:
    $url = preg_replace('#(.+)&Itemid=[0-9]+(.*)$#i', '$1$2', $url);
    Après réflexion, cette dernière est mieux XD. C'est jsute qu'il faut rendre facultatif les derniers caractères.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    as tu essayé avec d'autres paramètres derrière ?

    pourquoi t'acharner sur le rappel d'une partie de l'url avec $1 $2 ????

    suffit de matcher &Itemid= et sa suite de chiffre et le remplacer par rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $url = preg_replace('#&Itemid=[0-9]+#i', '', $url);
    fonctionne qu'il y ait ou non d'autres paramètres après ...

  5. #5
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut
    Merci pour vos réponses.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $url = preg_replace('#&Itemid=[0-9]+#i', '', $url);
    est effectivement le plus simple, cela dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $url = preg_replace('#(.+)&Itemid=[0-9]+(.*)#i', '$1$2', $url);
    fonctionne également, qu'il y ait ou non d'autre paramètres derrière.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    c'est vrai on peut vider le lac pour ne garder un verre d'eau lorsque l'on a soif

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Points : 136
    Points
    136
    Par défaut
    SpaceFrog +1
    Je suis resté dans son idée mais celle-ci est effectivement mieux.

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

Discussions similaires

  1. Utilisation de paramètres dans url dans un gridview
    Par stefsas dans le forum ASP.NET
    Réponses: 3
    Dernier message: 16/07/2010, 16h22
  2. paramètres dans URL en HTML
    Par luilui dans le forum Flex
    Réponses: 2
    Dernier message: 25/05/2009, 22h03
  3. récupérer les paramètres dans URL
    Par barchoui dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 16/02/2009, 16h51
  4. passage de paramètre dans url
    Par splouf dans le forum ASP
    Réponses: 3
    Dernier message: 29/03/2007, 09h05
  5. Variable en paramètre dans URL mais inexistante
    Par MinsK dans le forum Langage
    Réponses: 2
    Dernier message: 12/05/2006, 13h04

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