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 02/03/2008, 13h44   #1
Nouveau Membre du Club
 
Inscription : décembre 2007
Messages : 59
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 59
Points : 36
Points : 36
Par défaut Rajouter l'adresse absolue des HREF et SRC d'une page

Bonjour tout le monde,

j'ai besoin d'écrire une regex pour un preg_replace() qui va rajouter l'adresse du site devant les noms de fichiers dans les href & src qui n'ont que l'adresse relative, exemple au cas où je n'ai pas été claire:

j'ai des adresses du style:
Code html :
href="index.php?bidule=chouette"

et je voudrai que ça devienne
Code html :
href="http://www.monsite.com/index.php?bidule=chouette"

j'ai déjà réussi à rajouter l'adrese mais ça retire les noms de fichiers et je commence à ne plus avoir suffisement de cheveux ^^.


Grand merci d'avance et bon week end à vous amis codeurs du dimanche =
Kyaan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2008, 15h12   #2
Nouveau Membre du Club
 
Inscription : décembre 2007
Messages : 59
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 59
Points : 36
Points : 36
Je précice que l'idée est que la regex n'ajoute l'adresse absolue que dans les cas où il n'y a que l'adresse relative !

Voilà des trucs que j'ai essayé, si qqun pouvait m'expliquer ce qui ne va pas:
Code ^php :
1
2
$webpage = preg_replace('#href="(^http://)#', 'href="' . $adresse, $webpage);
$webpage = preg_replace('#href="[^h][^t][^t][^p][^:][^/][^/]#', 'href="' . $adresse, $webpage);

aucun ne fonctionne


gros maxi merci d'avance si qqun a une soluce en cette belle journée
Kyaan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2008, 14h24   #3
Membre à l'essai
 
Inscription : septembre 2004
Messages : 41
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 41
Points : 24
Points : 24
bonjour,

Pour ajouter ton adresse absolue, passe par une capture.
Pour savoir si tu dois faire l'opération, test la présence du protocole avec une fonction php.


Code :
1
2
3
4
5
 
<?php
$webpage = 'href="index.php?bidule=chouette"';
$webpage = preg_replace('#href="(.*?)"$#', 'http://www.monsite.com/\\0',$webpage);
?>
KOogar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2008, 17h33   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Euh, il y a potentiellement les assertions pour faire ça directement ou preg_replace_callback.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2008, 02h19   #5
Membre à l'essai
 
Inscription : septembre 2004
Messages : 41
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 41
Points : 24
Points : 24
Fine

Code :
1
2
 
$webpage = preg_replace('#href="(?<!http://www.monsite.com/)(.*?)"$#', 'http://www.monsite.com/\\1',$webpage);
KOogar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h06.


 
 
 
 
Partenaires

Hébergement Web