8791 sujets

Développement web côté serveur, CMS

Bonjour,
je cherche un moyen pour avoir le chemin du dernier sous dossier.
exemple : j'ai un dossier "toto" qui contient un dossier "toto", ce dernier contient lui aussi un dossier "toto", etc...
function Repertoire($Repertoire,$compteur_dossier)
{	
	$compteur_dossier++;	
	if($dossier = opendir("$Repertoire"))
	{
		while(false !== ($fichier = readdir($dossier)))
		{
			$trie[]=$fichier;
			if(preg_match("#toto#i", $fichier))
			{
				$encore_un_autre = "$Repertoire/$fichier";
				Repertoire($encore_un_autre,$compteur_dossier); // récurrence
			}
		}
		$tableau[$compteur_dossier]=$Repertoire; 
		closedir($dossier);
		sort($trie);
	}
	print_r($tableau);
}

je n'arrive pas à récupérer le chemin du dernier sous dossier
par exemple lorsque si je fais un return $tableau[$compteur_dossier], j'ai seulement le 1er chemin Smiley ohwell

si vous avez une idée sur une méthode plus simple, je suis preneur !
Pas testé (j'ai pas PHP sous la main) mais ça devrait marcher :


<?php
function repertoire($dir, $path = '')
{
	if (empty($path))
	{
		$path = $dir;

		if (!is_dir($dir))
		{
			return FALSE;
		}
	}

	$files = scandir($path, 1);
	$search = strtolower($dir);

	foreach ($files as $file)
	{
		$next_path = $path . '/' . $file;
		
		if ($search === strtolower($file) && is_dir($next_path))
		{
			return repertoire($file, $next_path);
		}
	}

	return $path;
}

echo repertoire('toto');
?>

Modifié par jb_gfx (13 Mar 2012 - 18:19)