RETROUVER LA BASE D'UNE URL

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 15 févr. 2005 à 18:07
cs_leseeb22 Messages postés 1 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 25 juin 2005 - 25 juin 2005 à 11:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29524-retrouver-la-base-d-une-url

cs_leseeb22 Messages postés 1 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 25 juin 2005
25 juin 2005 à 11:24
1- C ou que l'on rajoute le isdir ?
2- Comment faire pour retrouver tout l'url dans un tableau?.

ex:
http://pc.xxizeos.info/page/cat/ex/index.php
/*
tab[0] -> "nombre de rep + 1(fichier)+ 1(extention)"
tab[1] -> "http://"
tab[2] -> "pc.xxizeos.info"
tab[3] -> "page"
tab[4] -> "ex"
tab[5] -> "index"
tab[6] -> ".php"
*/



<?
function racine_url($url) {
if (eregi('([^/]+)$', $url, $regs)) {
$file = $regs[1];
$check = $file . '$';
$url = eregi_replace($check, "", $url);
}
return $url;
}
$url="news://www.monsiteamoi.com/data/01/02/index.html";
echo $url=racine_url($url);
?>

Excelent script je me demandais si j'allais pas inclure une variable à l'install et grâce à ce script je vais pouvoir redecomposer le chemin


Ps: Gardez vos force pour la vraie lutte (Le logiciel libre) au lieu de vous chammailler
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
17 févr. 2005 à 18:20
mais comme je l'ai dit, on ne peut pas si c'est sur un serveur distant...

et ici, les deux fonctions agissent de la même façon (je crois, j'ai pas testé)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
17 févr. 2005 à 17:18
Grenard > ok t'as fait la même chose, mais comme le dit coucou il faudrait vérifier le dernier dossier ;-)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
17 févr. 2005 à 12:28
euh.... non...

http://domaine.org/dossier1/dossier2/fichier.extention

vos fopnctions rendent :


http://domaine.org/dossier1/dossier2/

et si on mets :


http://domaine.org/dossier1/dossier2


http://domaine.org/dossier1/

pour éviter ça, (je sais pas si c'est le résultat shouaité ou pas...) il faut metre un isdir... mais si c'est pas sur le même site, alors on peut rien faire...
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
17 févr. 2005 à 12:04
-> Coucou, te serais tu plante de source, la, lol ?
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
17 févr. 2005 à 11:14
bah en même temps t'es onbligé de faire un isdir pour savoir si c'est un dissier ou un fichier... (ou un if file_exists)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
17 févr. 2005 à 08:22
Ah j'avais pas vu ce que disait Antho, et en effet, il obtient le resultat que je pensais obtenir.
Du coup j'ai teste cette fois, et suis d'accord avec lui, la fonction me tronque bien le dernier "test" dans ce cas-la.
Mais bon...
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
17 févr. 2005 à 05:13
Les 2 fonctions renvoient la même chose, moi j'ai copié exactement ce que faisait la fonction...
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
16 févr. 2005 à 16:52
"mmm anthomicro, http://www.vulgarisation-informatique.com/test/test/ me renvoie dans les 2 cas la même choses..."

non non, essaies ceci :

http://www.vulgarisation-informatique.com/test/test qui renvoit http://www.vulgarisation-informatique.com/test/

alors qu'il devrait renvoyer http://www.vulgarisation-informatique.com/test/test

a +
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2005 à 16:34
Ben maintenant que tu admets que tu as fait une bevu, non, tu n'es plus ridicule.
Aucun probleme, cela arrive a tout le monde.
Oui mais essaye http://www.vulgarisation-informatique.com/test/test
a mon avis ca tronque le dernier test.
Mais bon...
C'est pas tres grave lol. C'etait juste pour commenter ta source...;-)
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
16 févr. 2005 à 16:31
j'avais mal vu ce qui sortait de la fonction qu'il avait faite, parse_url n'était pas approprié à ce qu'il voulait, t'es content la ?
Jme rends ridicule ? ah bon, non jpense pas...

mmm anthomicro, http://www.vulgarisation-informatique.com/test/test/ me renvoie dans les 2 cas la même choses...
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2005 à 16:31
D'ailleurs je ne le teste pas, il est facile de voir que ca fonctionne.
Par contre faut lui filer une url avec un fichier a la fin, ou un slash, sinon il va virer, a priori, la derniere partie meme si ce n'est pas un fichier. A priori.

Donc...avec parse_url() ? Comme je l'ai dit, il y a des tas de facons de faire, j'en suis sur. Tu fais du substr() et du strrpos(), on peut utiliser pathinfo(), y a surement des tas de moyens, aucun doute.
Et parse_url() ?
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
16 févr. 2005 à 16:27
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2005 à 16:21
Il est ou, parse_url()... ?
J'ai pas teste ton truc (je vais le faire), et je ne doute pas que ca marche sans doute bien. Mais tu devrais relire ce que tu as dit, et ce que j'ai dit...
Parce que la, je pense que tu te rends de plus en plus ridicule.
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
16 févr. 2005 à 16:13
Tiens, j'ai perdu mon temps, jte fais la même fonction qui est SUPER plus rapide à mon avis :
substr($url,0,strrpos($url,'/')).'/';
horen5 Messages postés 4 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 16 février 2005
16 févr. 2005 à 15:56
oui malalam

il me gave tous avec leur parse_url() maintenant comme ça il y aura plus de confusion !!!

Si GRenard dit :
-"J'oqp j'ai d'autres choses à foutre..."

Alors si il a vraiement d'autres chose a foutre, je comprends pas pourquoi il vien perdre son temps a argumenter sur ma function.

Bon pour les autres j'ai mis en ligne une nouvelle version qui prend en compte tous les types d'url ;-)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2005 à 15:52
-> Coucou

la ou je suis, y neige deja suffisemment comme ca! Arrete tout de suite! ;-)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2005 à 15:51
Ben tien...
Moi, je maintiens qu'on ne peut pas avec parse_url().
Il y a d'autres methodes, comme je l'ai dit.
parse_url, suffit de lire la doc...
Explication rapide : les differentes valeurs que l'on trouvent dans le tableau retourne par parse_url() contiennent bien le chemin, l'hote, etc...
MAIS...tu auras un truc du genre :
$tab[0] = 'http'
$tab[1] = 'www.machin.com'
$tab[2] = '/truc/bidule/index.php'

c'est la ou le bas blesse...il ne retournera jamais http://www.machin.com/bidule/truc
pas sans utiliser des expressions regulieres, ou du moins parser un peu les resultats.
Oh ben tien, c'est exactement ce qu'Horen avait fait dans la version que tu critiquais: utiliser parse_url() et parser...!!! Ca alors...

Ca commence a me saouler cette ambiance, sur ce forum. J'ai rien contre Antho, il corrige pour que le code soit plus propre, no problemo. Mais ta remarque etait sterile, et fausse. On a le droit de se planter, mais toi tu reviens a la charge. Et tu t'esquives ensuite en grommelant que t'as pas que ca a foutre de prouver que t'as tort...
Prouve que t'as raison, ou dis simplement : ah ben oui, je me suis plante (ca arrive mon grand, c'est pas si grave!!).
Mais ca...
Tsss, comme tu le dis.

-> fuckya
Faut croire que certains trucs ont fini par me saouler aussi...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
16 févr. 2005 à 15:45
comme sur jscs...
bon allez, je vais faire un effort, je vais vous chanter une chansion en éspèrant que ça vous remètra de bonne humeur :
une souris verte qui courait dans l'herbe...

je suis un peu enrhumé, je m'arrètes là..

[[[{{{(((Bon, je sors...)))}}}]]]
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
16 févr. 2005 à 15:30
ca part en sucette ^^
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
16 févr. 2005 à 15:28
J'oqp j'ai d'autres choses à foutre...
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2005 à 15:19
Tien, täas enleve parse_url() c'te fois, horen? lol, ah.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2005 à 15:18
GRenard -> montre donc ? J'avoue que j'aimerais voir ca.
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
16 févr. 2005 à 15:15
Si tu veux changer un truc : <? à remplacer par <?php
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
16 févr. 2005 à 15:03
tssss, si jlavais pas dit, d'autre l'aurait dit... avec parse_url tu peux tomber exactement avec la même chose avec ta fonction et surement plus rapide !
Voila
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2005 à 14:34
de rien :-)
horen5 Messages postés 4 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 16 février 2005
16 févr. 2005 à 14:28
merci malalam !!!

toi au moins tu a vu la difference entre ma function et un simple parse_url()

pour une premiere contribe plein de chichi sur le fait de faire ou de ne pas faire comme ci ou comme ca.

Cela deviens vraiement n'importe quoi.

Surtout quand je lis GRenard qui se permet de dire

-"avec ...parse_url() ...Ta fonction devient alors pas mal inutile"

les gens se permet de te tirer dans les pattes alors qu'ils ont meme pas testé la function !!!!

bref cela ne me decouragera pas d'en poser d'autres et tanpis pour les mauvaises langues !
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2005 à 12:57
Ahhh oui en effet alors :-)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
16 févr. 2005 à 12:52
Salut,

il faut enlever le http:// car si ton adresse commence par ftp:// ça foire ;-) c'est pour ça que je faisais la remarque.

a ++
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2005 à 11:47
-> horen5

par contre, j'ai fait quelques recherches parce que je trouvais etrange qu'il n'y ait pas un moyen plus simple d'obtenir ce que tu obtiens.

<?php
$chemin= pathinfo('http://www.machin.com/truc/index.html');
foreach ($chemin as $v)
echo $v, '
';
?>

Le tableau contient ceci :
PATHINFO_DIRNAME
PATHINFO_BASENAME
PATHINFO_EXTENSION

donc un echo $chemin['dirname'];
donne le meme resultat que ton script.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2005 à 10:13
Ceci dit, ca marche bien dans les deux cas quand meme (j'viens de tester).
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2005 à 10:11
Heu...GRenard, Coucou ->
parse_url(), il l'utilise...et cette fonction seule ne permet aucunement de faire ce qu'il fait. Retournez a la doc les enfants :-)

Antho -> bonne remarque pour le http://, a mon avis il ne sert a rien.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
16 févr. 2005 à 09:35
y en a marre : chaque fois que l'on fait une fonction en php, on s'aperçoit qu'elle existe déja...

LOL

mais bon, les fonctions d'origines sont tellement plus rapide...
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
15 févr. 2005 à 19:54
T'en as pas marre de rêver ?

Tu ferais mieux de bosser (bon ok je sors)
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
15 févr. 2005 à 19:51
Je rêve .... (_)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
15 févr. 2005 à 18:20
^^ lol
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
15 févr. 2005 à 18:08
J'adore la fonction parse_url() http://ca3.php.net/manual/fr/function.parse-url.php
Ta fonction devient alors pas mal inutile :S désolé pour toi !

(De plus, <?php au lieu de <?, va lire les règles de la bonne programmation http://www.phpcs.com/code.aspx?id=24870)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
15 févr. 2005 à 18:07
Salut,

<? est à remplacer par <?php pour des raisons de portabilité ;-)

Ensuite tu peux mettre tes chaînes entre simples quotes :

$url='http://www.monsiteamoi.com/data/01/index.html';

au lieu des doubles, ce qui accélère un peu le temps de génération.

Par contre ça ne fonctionne apparemment pas pour les url différentes de http://xx

tu pourrais enlever le paramètre http:// devant :

$url_dom = parse_url($url);

a ++
Rejoignez-nous