Comment tronquer une partie d'une url ?


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Comment tronquer une partie d'une url ?

Message le Mer Fév 11, 2009 14:10

Bonjour,

Y a t'il moyen de tronquer/remplacer une url par une autre.
Genre $description =" Comment tronquer une url -http://www.example.com/blabla.php";
Trouver l'url dans $description qui commence par -http://www.example.com/, supprimer blabla.php puis remplacer par -http://www.example.com/une-autre-page.php

Merci


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Re: Comment tronquer une partie d'une url ?

Message le Mer Fév 11, 2009 14:32

Avec une regexp ça se fait sans souci. Regarde les fonctions preg_replace ou ereg_replace.


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Re: Comment tronquer une partie d'une url ?

Message le Mer Fév 11, 2009 17:35

J'ai déjà regardé et tenté mais sans réelle succès ^^. C'est d'un compliqué le regex !


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Re: Comment tronquer une partie d'une url ?

Message le Mer Fév 11, 2009 17:38

En même temps avec un bête str_replace ca devrait le faire :

Code: Tout sélectionner
$description =  str_replace("http://www.example.com/blabla.php","http://www.example.com/une-autre-page.php",$description);


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Re: Comment tronquer une partie d'une url ?

Message le Mer Fév 11, 2009 17:41

Justement non , sinon je l'aurais fait ^^, because "blabla.php" peut très être blibli.php ou autre.
C'est pour sa que je veux récupérer le début uniquement le début du domaine dans 1 premier temps puis tronquer l'url ensuite.


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Re: Comment tronquer une partie d'une url ?

Message le Mer Fév 11, 2009 18:05

Code: Tout sélectionner
$reponse   = "http://www.example.com/blabla.php";
preg_match("%http://www.example.com/(.*?).php%",$reponse,$tab);
print_r($tab);
echo "<br><br>";
$reponse   = "http://www.example.com/blabla.php";
preg_match("%http://(.*?)/(.*?).php%",$reponse,$tab);
print_r($tab);

Résultat :
Array ( [0] => http://www.example.com/blabla.php [1] => blabla )

Array ( [0] => http://www.example.com/blabla.php [1] => www.example.com [2] => blabla )


En espérant que ça t'aide à comprendre le fonctionnement pour obtenir ce que tu veux :wink:

fullflash13
WRInaute discret
WRInaute discret
 
Messages: 57
Inscription: 18 Mai 2008

Re: Comment tronquer une partie d'une url ?

Message le Mer Fév 11, 2009 19:33

Salut

Avec des explode ca peus le faire
d'abord pour retirer le "http://"

$chaine_sans_http = str_replace($url,"","http://");

$chaine_sans_http contiendra www.example.com/blabla.php


$tab_chaine = explode("/",$chaine_sans_http);

$tab[0] sera www.example.com
$tab[1] sera blabla.php

plus qu'a concaténé

$nouvelle_url = "http://".$tab[0]."blibli.php";

$nouvelle_url deviendra "http://www.example.com/blibli.php"


A plus


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Re: Comment tronquer une partie d'une url ?

Message le Mer Fév 11, 2009 19:48

Merci dadovb,

Commencer à comprendre est un bien grand mots ^^ mais je fais des testes et je viens de comprendre seulement ce que renvoyais print_r($tab)...


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Re: Comment tronquer une partie d'une url ?

Message le Mer Fév 11, 2009 23:24

Je reviens à la charge car je commence à me dépatouiller un petit peut.
Je parviens à tronquer l'url contenue dans une variable et à restituer le texte d'origine+ l'url modifié.
La ou je coince et en me basent sur le code de dadovb, c'est si l'url ne contient pas de (.php) en fin.. le print_r($tab); me retourne pas la fin de l'url contenue après le slash soit blabla.php!
dadovb a écrit:$reponse = "http://www.example.com/blabla.php";

Même en supprimant le .php du preg_match() sa ne le fait pas.

Une solution ou une piste svp ?
Merki :D


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Re: Comment tronquer une partie d'une url ?

Message le Jeu Fév 12, 2009 18:26

Code: Tout sélectionner
$reponse   = "http://www.example.com/blabla.php";
preg_match("%http://(.*?)/(.*)%",$reponse,$tab);
print_r($tab);


Array ( [0] => http://www.example.com/blabla.php [1] => www.example.com [2] => blabla.php )


C'est ça que tu veux ?


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités