Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2011, 12h44   #1
Membre éclairé
 
Avatar de jmjmjm
 
Homme Jérémy
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 751
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : avril 2005
Messages : 751
Points : 381
Points : 381
Par défaut Chemin relatif en absolu

Bonjour, je souhaiterais faire une regex permettant de partir d'une chaîne :

Code :
<a href = "http://www.test.org/test/toto.png">test</a>
et arriver à :

Code :
<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
jmjmjm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 13h17   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Bonjour,

Dans ce cas, je pense qu'un simple str_replace suffit :
Code :
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
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 14h08   #3
Membre éclairé
 
Avatar de jmjmjm
 
Homme Jérémy
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 751
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : avril 2005
Messages : 751
Points : 381
Points : 381
ha oui désolé, j'ai pas précisé que le chemin web n'était pas prévisible, il change régulièrement.
jmjmjm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 18h35   #4
Membre éclairé
 
Avatar de jmjmjm
 
Homme Jérémy
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 751
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : avril 2005
Messages : 751
Points : 381
Points : 381
Désolé d'insister, j'ai fait ça mais ça :
Code :
 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.
jmjmjm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 00h47   #5
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
Bonsoir,

Une piste pour toi et sans regex :

Code :
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
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 02h01   #6
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Bonsoir,

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

Code :
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));
 
?>
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h03.


 
 
 
 
Partenaires

Hébergement Web