Bonjour,

Je dispose d'un fichier d'entrée qui contient des chemins de dossiers par lignes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Dossier1/Dossier2/Dossier3
Dossier1/Dossier2/Dossier4
Dossier1/Dossier2/Dossier4/Dossier5
Dossier1/Dossier2/Dossier4/Dossier6
Je souhaiterais créer un fichier de sortie qui mette en forme hérarchique le fichier d'entrée de cette forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
- <folder>Dossier1
	- <folder>Dossier2
		- <folder>Dossier3
		</folder>
		- <folder>Dossier4
			* <folder>Dossier5
			</folder>
			* <folder>Dossier6
			</folder>
		</folder>
	</folder>
- </folder>
J'ai commencé à coder (pas très optimisé) mais ça ne donne pas ce que je veux mais le principal est la :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
//Parcours du fichier pour remise en forme
$fichier = fopen("fichier_entree.txt", "w" ); //Fichier pour écriture
	$tableau = file("fichier_sortie.txt"); //Fichier pour lecteure stocké dans un tableau
	if(is_array($tableau)) //Si la variable $tableau est bien un tableau, on peut continuer
	{
		$contenu_fichier = '';
		$temp_derniere_colonne = '';
		$chemin_sans_dernier_dossier_precedent = '';
		foreach($tableau AS $ligne)
		{
			$nb_colonnes_tableau = substr_count($ligne,"/") + 1; //Nombre de slash dans la ligne puis + 1 = Nombre de colonnes dans le tableau
			$tableau = split("/",$ligne);
 
			//On récupère le chemin sans le dernier dossier
			$chemin_sans_dernier_dossier = '';
			for ($i=0;$i < $nb_colonnes_tableau-1;$i++)
			{
				$chemin_sans_dernier_dossier .= $tableau[$i].'/';
				if ($chemin_sans_dernier_dossier == $chemin_sans_dernier_dossier_precedent)
				{
				}else{
					fputs($fichier,'???');
					fputs($fichier,"\n");
				}
			}
			$num_derniere_colonne = $nb_colonnes_tableau - 1; // On récupère le numéro de la  dernière colonne du tableau et -1 car on commence à 0
			fputs($fichier,'			<folder>'.$tableau[$num_derniere_colonne].'');
			fputs($fichier,"\n");
			fputs($fichier,'			</folder>');
			fputs($fichier,"\n");
 
			//Vérification que l'avant dernière colonne existe et qu'il n'y en a pas qu'une seule
			if ($tableau[$num_derniere_colonne] > 1)
			{
				$temp_derniere_colonne = $tableau[$num_derniere_colonne-1]; //On stock l'avant dernière colonne dans une variable temporaire pour la comparer par la suite
			}
 
			$chemin_sans_dernier_dossier_precedent = $chemin_sans_dernier_dossier;
		}
	}
fclose($fichier);
Si quelqu'un peut m'aider je lui en serais reconnaissant merci