Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PARSER LES SOUS-RÉPERTOIRES D'UNE URL


Information sur la source

Catégorie :Chaîne de caratère Classé sous : parser, url, sousrepertoires, dossier Niveau : Débutant Date de création : 11/12/2005 Date de mise à jour : 11/12/2005 23:10:04 Vu : 4 634

Note :
Aucune note

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

La fonction parse_url() ne parse pas les sous-répertoires d'une url (peut-être y a-t-il une fonction dédiée à cet effet ?), alors cette fonction sert à retrouver tous les sous-répertoires présent dans une url de type  http://www.site.php/doss1/doss2/page.php?cavamenant=hein de les placer dans un tableau (içi on aura une valeur = doss1 et une valeur = doss2, pour les autres types d'url, je n'ai pas essayé.
 

Source

  • function dossier($url)
  • {
  • $lien_seg = parse_url("$url");
  • $do=dirname($lien_seg['path']);
  • preg_match_all('@[/]+[0-9_A-Za-z]{1,255}@', $do, $doss);
  • $n_ligne=count($doss[0]);
  • for ($i=0;$i<$n_ligne;$i++)
  • {
  • $doss[0][$i]=ereg_replace("[/]",'', $doss[0][$i]);
  • };
  • return $doss[0];
  • }
function dossier($url)
{ 
  $lien_seg = parse_url("$url");
  $do=dirname($lien_seg['path']);
  preg_match_all('@[/]+[0-9_A-Za-z]{1,255}@', $do, $doss);
  $n_ligne=count($doss[0]);
  for ($i=0;$i<$n_ligne;$i++)
  {
	 $doss[0][$i]=ereg_replace("[/]",'', $doss[0][$i]);
  };
  return $doss[0];
}

Conclusion

function dossier($url)
{
  //**  sur une url de type http://www.site.com/doss1/doss2/page.php


  $lien_seg = parse_url("$url");
  //**  parse l'url


  $do=dirname($lien_seg['path']);
  //**  Je ne prends que $lien_seg['path'] : /doss1/doss2/page.php
  //**  puis avec dirname, je ne garde que /doss1/doss2
  //**  ATTENTION : $do est un array()
  //**  la chaine de caractère est dans $do[0]
  //**  on a : $do[0][0]='/doss1/doss2'


  preg_match_all('@[/]+[0-9_A-Za-z]{1,255}@', $do, $doss);
  //**  Je met tout ce qui est après le caractère "/" du tableau $doss
  //**  dans le tableau $do (je laisse passer les caractères pouvant
  //**  constituer un nom de dossier jusqu'a concurrence de 255 caractères)
  //**  on a maintenant $doss[0][0]='/doss1' et $doss[0][1]='/doss2'


  $n_ligne=count($doss[0]);
  //**  je compte le nombre de ligne du tableau $doss[o] pour la suite


  for ($i=0;$i<$n_ligne;$i++)
  {
      $doss[0][$i]=ereg_replace("[/]",'', $doss[0][$i]);
      //**  je remplace les caractères "/" par rien, bref je les enlève
      //**  je n'arrive pas à me servir de la fonction array_walk qui me
      //**  semblait approprièe
  };


  return $doss[0];
      //**  il suffira d'utiliser cette fonction comme çà :
      //**  $nom_de_dossiers = dossier($url); et dans le tableau
      //**  $nom_de_dossiers, vous avez tous les sous répertoires
      //**  de l'url.
      //**  un print_r ($nom_de_dossiers) affichera tout dans
      //**  un premier temps
}
 

Historique

11 décembre 2005 23:10:04 :
.

Commentaires et avis

signaler à un administrateur
Commentaire de Anthomicro le 12/12/2005 15:45:54

Salut,

plutôt que d'utiliser des expressions régulières tu peux faire un explode avec le chemin retourné par parseurl, un explode de '/' et hop ;-)

a +

signaler à un administrateur
Commentaire de pichpoich le 12/12/2005 21:04:24

Ah oui, exact, je ne connaissais pas.

Merci.

signaler à un administrateur
Commentaire de coucou747 le 14/12/2005 15:34:52

les expressions régulières pour ça ???
comme le dis antho, c'est inutile ici... elles sont trop lentes...

signaler à un administrateur
Commentaire de Antidote le 19/12/2005 19:22:20

je ne comprenais pas aussi, explode() forcément.

signaler à un administrateur
Commentaire de syllebreton le 22/12/2005 15:04:17

Bonjour

Une autre fonction php existe, c'est la fonction recursive_readdir.
Pour plus d'information reportez vous à ce site :

http://www.comscripts.com/sources/php.fonction-recursivereaddir.263.html

@+

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Url [ par Toolsweb ] Salut, j'ai 13 ans et je viens tout juste de commencer le php. Ma question peut sembler stupide mais je la pose quand m&#234;me.Sur mon site, j'ai bea Parser le texte en entier [ par Also know as ] Bonjour, Voilà j'essaye de faire un parser. Tout ce qui est création du fichier xml etc pour le moment ca devrait aller, en fait je cherche plus préci Parser Xml rebelle [ par Diablo62 ] bonjour, Je souhaiterai parser ce fichier xml&lt;?xml version="1.0" encoding="iso-8859-1" ?&gt;<div class="c" style="MARGIN Inclure Page dans tous les pages [ par masterofquebec ] Bonjour, je cherche actuellement comment inclure un script (imidiatement avant la fermeture du tag body) dans tous les pages d'un certain dossier sans url de page avant précédente [ par bakayan9 ] Bonjour, Je suis en train de réaliser une applicatin d'analyse de traffic d'un site web, et je veux récupérer l'url de la page avant la page précédent url de site ne marche pas sans index.php à la fin ? [ par azamharir ] salutun de mes amis a construit un petit site avec joomla (php et mysql): http://www.yacine-indus.rack111.com/. mais cet url ne marche qu'avec l'ajout Aide (copier/coller un dossier) [ par dydjy940 ] Bonjour, j'ai trouver un script sur ce site qui me permetait de créer des dossier en enttrant simplement le nom que je voulez lui attribuer,dans ce do Variables Url Rewriting [ par masterofquebec ] Bonjour, je souhaite récupérer l'url demandé par l'utilisateur dans (non l'url redirigé par le mode rewrite) en php.Il y a t'il une variable définie p Verifier espace ou caractere special pour création dossier [ par laubro ] Bonjourj'ai un script de création de dossier (repertoire) mais je voudrais verifier via ma fonction de control du formulaire que le nom qui lui est do probleme d'upload [ par keith166 ] salut les mecsje vous demande un trucs :fichier upload.php situe dans rep1/rep2/upload.phpje veux uploader dans le dossier rep1/dossier/y a un moyen '


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.