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 05/12/2006, 16h03   #1
Membre habitué
 
Inscription : mai 2002
Messages : 475
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 475
Points : 105
Points : 105
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
nicerico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 16h16   #2
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Bonjour,

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

Code :
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.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 17h11   #3
Fabouney
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Bonsoir,

petite erreur de ta part FCYPBA,
ceci fonctionne :

Code :
1
2
 
$newurl = preg_replace('/http:\/\/www.monsite.net\/squelette\/website\/admin\/(.*)$/','http://www.monsite.net/squelette/website/admin/image/',$monurl)
Cordialement.
  Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 17h16   #4
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
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 :
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.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 17h21   #5
Fabouney
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
PE, mais il faut bien lui dire quelle partie de la chaine est à modifier, ta solution va donner par exemple :

Code :
http://www.monsite.net/squelette/website/admin/imageindex.php
  Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 17h25   #6
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
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.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 17h26   #7
Fabouney
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
sinon oila une autre solution, un peu plus moche lol :

Code :
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;
  Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 17h29   #8
Fabouney
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
mais meme en rajoutant un "/" cela ne peux fonctionner ...

Code :
str_replace('website/admin/','website/admin/image/',$monurl);
il va toujours mettre le fichier php ...

pour bien il faut faire ca .. :

Code :
1
2
$monurl="http://www.monsite.net/squelette/website/admin/page1.php";
str_replace('website/admin/page1.php','website/admin/image/',$monurl);
  Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 17h32   #9
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
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.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 19h36   #10
Membre habitué
 
Inscription : mai 2002
Messages : 475
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 475
Points : 105
Points : 105
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 :
$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 :
Citation:
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 :
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
nicerico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 19h52   #11
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Si c'est juste cela pourquoi ne pas faire un dirname()

Code :
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.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2006, 13h59   #12
Membre habitué
 
Inscription : mai 2002
Messages : 475
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 475
Points : 105
Points : 105
oui efectivement!
je ne connaissais pas dirname

merci
nicerico 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 13h39.


 
 
 
 
Partenaires

Hébergement Web