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 :

Chemin relatif en absolu [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre averti
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Points : 439
    Points
    439
    Par défaut Chemin relatif en absolu
    Bonjour, je souhaiterais faire une regex permettant de partir d'une chaîne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href = "http://www.test.org/test/toto.png">test</a>
    et arriver à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href ="./toto.png">test</a>

    en gros supprimer tout les chemins internet d'une page et les remplacer par un chemin local.


    Par avance, merci

  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
    Bonjour,

    Dans ce cas, je pense qu'un simple str_replace suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace('http://www.test.org/test/', './', $chaine);
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Membre averti
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Points : 439
    Points
    439
    Par défaut
    ha oui désolé, j'ai pas précisé que le chemin web n'était pas prévisible, il change régulièrement.

  4. #4
    Membre averti
    Avatar de jmjmjm
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Points : 439
    Points
    439
    Par défaut
    Désolé d'insister, j'ai fait ça mais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     regex.replace(sChaine, "[href=\"]*[\"],"href=.")
    mais ce marche pas j'esperait que ça me remplace les liens par un point mais non la chaîne regex n'est pas bonne de plus je souhaiterais conserver le dernier champ du liens le toto.png par exemple.


    En vous remerciant.

  5. #5
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Bonsoir,

    Une piste pour toi et sans regex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
     
    $str = 'http://www.test.org/test/toto.png';
     
    echo '.'.substr($str, strrpos($str, '/')); 
    ?>
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  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
    Bonsoir,

    Ce n'est pas très élégant, mais cela devrait fonctionner...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
     
    function getHref( $matches ) { 
        if(!strpos($matches[1], "/")) 
            return $matches[0];
        else 
            return '<a href="./'.substr(strrchr($matches[1], "/"), 1).'"';
    }
     
    $texte='bla bla <a href="http://www.test.org/test/toto.png">test</a> bla bla bla <a href="http://www.test.org/test/titi.jpg">test 2</a> bla bla bla';
     
    $pattern= '`<a href="([^"].*?)"`i';
     
    echo "<h3>Avant : </h3>";
    echo htmlentities($texte);
     
    echo "<hr/>";
     
    echo "<h3>Après : </h3>";
    echo htmlentities(preg_replace_callback($pattern,'getHref',$texte));
     
    ?>

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

Discussions similaires

  1. Chemin relatif et absolu d'un fichier
    Par Milorion dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 24/01/2012, 20h46
  2. Chemin Relatif Ou Absolu
    Par IHAMM dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 19/05/2011, 11h02
  3. Lire un fichier en chemin relatif ou absolu
    Par batataw dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 11/10/2007, 16h51
  4. Chemin Relatif et Absolu
    Par Z3c33 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/05/2007, 23h50
  5. [access2002] [chemin Relatif Et Absolu]
    Par louroulou dans le forum Access
    Réponses: 1
    Dernier message: 02/06/2006, 14h39

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