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 :

modification de plusieurs urls [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut modification de plusieurs urls
    bonjour

    je cherche à modifier plusieurs urls
    ex :
    http://www.monsite.net/squelette/web...dmin/index.php
    http://www.monsite.net/squelette/web...dmin/page1.php
    http://www.monsite.net/squelette/web...dmin/page2.php

    en : http://www.monsite.net/squelette/website/admin/image

    j'imagine qu'il faut se mettre à la fin de l'url et de revenir jusqu'au "/"

    Pouvez vous me mettre sur la voie?

    merci

  2. #2
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Bonjour,

    Suivant ce que tu veux faire, un simple str_replace() peut suffire, du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    str_replace('http://www.monsite.net/squelette/website/admin/','http://www.monsite.net/squelette/website/admin/image',$monurl)
    Suivant tes urls, tu dois pouvoir simplifier les expressions de remplacement
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  3. #3
    Fabouney
    Invité(e)
    Par défaut
    Bonsoir,

    petite erreur de ta part FCYPBA,
    ceci fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $newurl = preg_replace('/http:\/\/www.monsite.net\/squelette\/website\/admin\/(.*)$/','http://www.monsite.net/squelette/website/admin/image/',$monurl)
    Cordialement.

  4. #4
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Il n'y a aucun intérêt à utiliser des regex dans un cas aussi simple.

    Cela ne fera que ralentir le script. En plus, tu n'utilise aucun pattern donc c'est vraiment un str_replace() qu'il faut utiliser

    Après comme je l'expliquais on peut simplifier

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $tabUrl[] = 'http://www.monsite.net/squelette/website/admin/index.php';
    $tabUrl[] = 'http://www.monsite.net/squelette/website/admin/page1.php';
    $tabUrl[] = 'http://www.monsite.net/squelette/website/admin/page2.php';
     
    $tabnewUrl = str_replace('website/admin/','website/admin/image/',$tabUrl);
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  5. #5
    Fabouney
    Invité(e)
    Par défaut
    PE, mais il faut bien lui dire quelle partie de la chaine est à modifier, ta solution va donner par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.monsite.net/squelette/website/admin/imageindex.php

  6. #6
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Bien sur car il manque juste un petit slash à la fin.

    Juste une coquille que je viens de corriger d'ailleurs, merci.
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  7. #7
    Fabouney
    Invité(e)
    Par défaut
    sinon oila une autre solution, un peu plus moche lol :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $monurl="http://www.monsite.net/squelette/website/admin/page1.php";
    $arbo=split('/',$monurl);
    $newurl='';
    	for($i=0;$i<sizeof($arbo);$i++)
    		$newurl.=($i==sizeof($arbo)-1)?"image/":$arbo[$i]."/";
    echo $newurl;

  8. #8
    Fabouney
    Invité(e)
    Par défaut
    mais meme en rajoutant un "/" cela ne peux fonctionner ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace('website/admin/','website/admin/image/',$monurl);
    il va toujours mettre le fichier php ...

    pour bien il faut faire ca .. :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $monurl="http://www.monsite.net/squelette/website/admin/page1.php";
    str_replace('website/admin/page1.php','website/admin/image/',$monurl);

  9. #9
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    En effet je viens de relire le post original mais je ne suis pas sur de ce qu'il désire vraiment. on va attendre son retour avant de s'étriper.

    En effet s'il faut effacer le nom du fichier, dans ce cas une regex s'impose. je ne sais pas pourquoi je suis parti vers un ajout de répertoire tout simple
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut
    le but est de transformer un url 'statique' en 'dynamique'
    dans un fichier qui sera utilisé sur plusieurs site different

    donc j'ai par exemple cette url :
    http://www.monsite.net/squelette/web...images/imf.jpg
    qui se trouve dans le fichier :
    http://www.monsite.net/squelette/web...dmin/page1.php

    pour cela je suis parti sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chemin = $_SERVER['SERVER_NAME']." ".$_SERVER['PHP_SELF'];
    (qui donne : http://www.monsite.net/squelette/web...dmin/page1.php)
    pour recupérer l'arborescence afin de modifier la fin en remplaçant dans cette exemple :
    "page1.php" par "images"

    d'où ma question du post original :
    bonjour

    je cherche à modifier plusieurs urls
    ex :
    http://www.monsite.net/squelette/web...dmin/index.php
    http://www.monsite.net/squelette/web...dmin/page1.php
    http://www.monsite.net/squelette/web...dmin/page2.php

    en : http://www.monsite.net/squelette/website/admin/image

    j'imagine qu'il faut se mettre à la fin de l'url et de revenir jusqu'au "/"

    Pouvez vous me mettre sur la voie?

    merci
    et donc j'ai fait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $chemin = $_SERVER['SERVER_NAME']." ".$_SERVER['PHP_SELF'];
    $asuppr = strrchr($chemin, '/');
    $adr_dir_image = str_replace($asuppr, "/images",$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']);
    est ce la bonne méthode?

    merci encore pour vos interventions

  11. #11
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Si c'est juste cela pourquoi ne pas faire un dirname()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $repertoire = $_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']);
    dirname() te renvoyant le chemin du script courant
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut
    oui efectivement!
    je ne connaissais pas dirname

    merci

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

Discussions similaires

  1. [1.x] Modification de plusieurs champs à la fois
    Par SansPseudo dans le forum Symfony
    Réponses: 2
    Dernier message: 20/07/2007, 14h31
  2. Modification de l'url
    Par ohhh.gringo dans le forum Serveurs (Apache, IIS,...)
    Réponses: 32
    Dernier message: 27/04/2007, 10h13
  3. Rediriger plusieurs url dans le "Action"
    Par Alexino2 dans le forum Langage
    Réponses: 8
    Dernier message: 16/03/2007, 10h50
  4. Appel au chargement de plusieurs URL
    Par ujoodha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/09/2006, 16h46
  5. Réponses: 2
    Dernier message: 23/03/2006, 13h18

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