begin process at 2012 05 27 18:23:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > RETROUVER LA BASE D'UNE URL

RETROUVER LA BASE D'UNE URL


 Information sur la source

Note :
Aucune note
Catégorie :Chaîne de caratère Niveau :Débutant Date de création :15/02/2005 Date de mise à jour :16/02/2005 14:40:24 Vu :3 666

Auteur : horen5

Ecrire un message privé
Commentaire sur cette source (38)
Ajouter un commentaire et/ou une note

 Description

Voila pour ma premiere contribution.

Je vous propose une petite function, afin de retrouver la base d'une url.

Je m'explique :

Vous avez une url du type :
- http://www.monsiteamoi.com/data/01/index.html

Vou s voulez de maniere automatique recuperer la base de cette url :
- http://www.monsiteamoi.com/data/01

Afin de pourquoi pas, verifier sa presence dans une base, eviter les doublons ou autres ...

Voila j'espere que cela vous aidera dans vos projets.

Source

  • <?
  • 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);
  • ?>
<?
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);
?>



 Historique

15 février 2005 16:15:13 :
...
16 février 2005 14:40:24 :
Fonctionne maintenant avec tous type d'url : http, ftp, ou news, etc...

 Sources de la même categorie

ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET par Dariumis
Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE par tefa24600
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz
Source avec Zip Source avec une capture CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGE par Salva9473

Commentaires et avis

Commentaire de Anthomicro le 15/02/2005 18:07:15

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 ++

Commentaire de GRenard le 15/02/2005 18:08:20

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)

Commentaire de Anthomicro le 15/02/2005 18:20:46

^^ lol

Commentaire de fuckya le 15/02/2005 19:51:59

Je rêve .... (_)

Commentaire de Anthomicro le 15/02/2005 19:54:08

T'en as pas marre de rêver ?

Tu ferais mieux de bosser (bon ok je sors)

Commentaire de coucou747 le 16/02/2005 09:35:25 administrateur CS

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...

Commentaire de malalam le 16/02/2005 10:11:11 administrateur CS

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.

Commentaire de malalam le 16/02/2005 10:13:12 administrateur CS

Ceci dit, ca marche bien dans les deux cas quand meme (j'viens de tester).

Commentaire de malalam le 16/02/2005 11:47:16 administrateur CS

-> 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, '<br />';
?>

Le tableau contient ceci :
PATHINFO_DIRNAME
PATHINFO_BASENAME
PATHINFO_EXTENSION

donc un echo $chemin['dirname'];
donne le meme resultat que ton script.

Commentaire de Anthomicro le 16/02/2005 12:52:53

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 ++

Commentaire de malalam le 16/02/2005 12:57:26 administrateur CS

Ahhh oui en effet alors :-)

Commentaire de horen5 le 16/02/2005 14:28:16

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 !

Commentaire de malalam le 16/02/2005 14:34:14 administrateur CS

de rien :-)

Commentaire de GRenard le 16/02/2005 15:03:40

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

Commentaire de Anthomicro le 16/02/2005 15:15:46

Si tu veux changer un truc : <? à remplacer par <?php

Commentaire de malalam le 16/02/2005 15:18:43 administrateur CS

GRenard -> montre donc ? J'avoue que j'aimerais voir ca.

Commentaire de malalam le 16/02/2005 15:19:55 administrateur CS

Tien, täas enleve parse_url() c'te fois, horen? lol, ah.

Commentaire de GRenard le 16/02/2005 15:28:12

J'oqp j'ai d'autres choses à foutre...

Commentaire de fuckya le 16/02/2005 15:30:35

ca part en sucette ^^

Commentaire de coucou747 le 16/02/2005 15:45:42 administrateur CS

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...)))}}}]]]

Commentaire de malalam le 16/02/2005 15:51:09 administrateur CS

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...

Commentaire de malalam le 16/02/2005 15:52:27 administrateur CS

-> Coucou

la ou je suis, y neige deja suffisemment comme ca! Arrete tout de suite! ;-)

Commentaire de horen5 le 16/02/2005 15:56:00

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 ;-)

Commentaire de GRenard le 16/02/2005 16:13:46

Tiens, j'ai perdu mon temps, jte fais la même fonction qui est SUPER plus rapide à mon avis :
substr($url,0,strrpos($url,'/')).'/';

Commentaire de malalam le 16/02/2005 16:21:17 administrateur CS

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.

Commentaire de Anthomicro le 16/02/2005 16:27:47

test avec ta fonction :

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

me renvoit bien l'url correcte

et http://www.vulgarisation-informatique.com/test/test

me renvoit :

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

Commentaire de malalam le 16/02/2005 16:31:34 administrateur CS

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() ?

Commentaire de GRenard le 16/02/2005 16:31:45

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...

Commentaire de malalam le 16/02/2005 16:34:27 administrateur CS

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...;-)

Commentaire de Anthomicro le 16/02/2005 16:52:31

"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 +

Commentaire de GRenard le 17/02/2005 05:13:16

Les 2 fonctions renvoient la même chose, moi j'ai copié exactement ce que faisait la fonction...

Commentaire de malalam le 17/02/2005 08:22:58 administrateur CS

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...

Commentaire de coucou747 le 17/02/2005 11:14:13 administrateur CS

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)

Commentaire de malalam le 17/02/2005 12:04:17 administrateur CS

-> Coucou, te serais tu plante de source, la, lol ?

Commentaire de coucou747 le 17/02/2005 12:28:47 administrateur CS

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...

Commentaire de Anthomicro le 17/02/2005 17:18:27

Grenard > ok t'as fait la même chose, mais comme le dit coucou il faudrait vérifier le dernier dossier ;-)

Commentaire de coucou747 le 17/02/2005 18:20:22 administrateur CS

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é)

Commentaire de leseeb22 le 25/06/2005 11:24:10

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

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales