A voir également:
- Erreur sur un echo
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur vidéo freebox ✓ - Forum TV & Vidéo
- Erreur 38 free ✓ - Forum Mobile
11 réponses
Utilisateur anonyme
30 janv. 2014 à 15:23
30 janv. 2014 à 15:23
salut,
donc du coup ce qui aurai été bien c'est
- soit montrer la ligne qui pose problème
- soit montrer le code complet
car ton message indique une erreur ligne 28 tandis que le code affiché en montre 23 ..
sinon comme ca, je dirai que ton code semble correcte, j'aurai tout de même rajouté les accolades pour le ifelse du milieu même si ce qui suit est une instruction unique (tout comme le if précédent, mais là tu as mis une accolade)
donc juste :
naga
donc du coup ce qui aurai été bien c'est
- soit montrer la ligne qui pose problème
- soit montrer le code complet
car ton message indique une erreur ligne 28 tandis que le code affiché en montre 23 ..
sinon comme ca, je dirai que ton code semble correcte, j'aurai tout de même rajouté les accolades pour le ifelse du milieu même si ce qui suit est une instruction unique (tout comme le if précédent, mais là tu as mis une accolade)
donc juste :
<?php $dirname = 'modules'; $dir = opendir($dirname); while($file = readdir($dir)) { if($file != '.' && $file != '..' && !is_dir($dirname.$file)) { if(is_file($file)) { echo '<a href="'.$dirname.$file.'" class="tree">'.$file.'</a><br />'; } else { echo '<a href="'.$dirname.$file.'" class="tree2">'.$file.'</a><br />'; } } echo '<div class="last"> </div>'; } closedir($dir); ?>
naga
buyaman
Messages postés
694
Date d'inscription
mardi 3 décembre 2013
Statut
Membre
Dernière intervention
16 janvier 2019
206
30 janv. 2014 à 15:23
30 janv. 2014 à 15:23
bonjour,
le code et l'erreur ne sont en accord Line 28 et le code ne comprte que 23 line
cordialment
le code et l'erreur ne sont en accord Line 28 et le code ne comprte que 23 line
cordialment
ca marche ca afffiche le dossier module avec les page.php
sauf les sous dossier du dossier module
es ce que je repete ce code x fois autant que j'ai un dossier ou il y a un autre moyen
car j'ai trouver une image ceux que je veux :
http://help.adobe.com/fr_FR/dreamweaver/cs/using/images/ln_contentsfile.png
moi ca me donne ca il y a que les pages du dossier modules et pas les sous dossier et sous dossier
http://leprojet.legtux.org/struturesite.html
sinon j'ai fait une page sans ce code juste en html pour un exemple
http://leprojet.legtux.org/plandusite.html
donc ma question : es ce que je doit repeter le code autant de fois que j'ai un dossier ou bien il y un moyen sans repeter le code 150 fois lol
et l'autre question si je met coté page.php une image php et page.css ca sera une image css
comment on peut le detecter
j'ai fait le css avec ca
merci de ton petit aide
sauf les sous dossier du dossier module
<?php echo '<ul class="tree11"> <li class="structure12">modules</li> </ul>'; $dirname = 'modules'; $dir = opendir($dirname); while($file = readdir($dir)) { if($file != '.' && $file != '..' && !is_dir($dirname.$file)) { if(is_file($file)) { echo '<ul> <li class="structure12"><a href="'.$dirname.$file.'">'.$file.'</a></li><br />'; } else { echo '<li class="structure15"<a href="'.$dirname.$file.'" class="tree2">'.$file.'</a></li></ul><br />'; } } echo '<div class="last"> </div>'; } closedir($dir); ?>
es ce que je repete ce code x fois autant que j'ai un dossier ou il y a un autre moyen
car j'ai trouver une image ceux que je veux :
http://help.adobe.com/fr_FR/dreamweaver/cs/using/images/ln_contentsfile.png
moi ca me donne ca il y a que les pages du dossier modules et pas les sous dossier et sous dossier
http://leprojet.legtux.org/struturesite.html
sinon j'ai fait une page sans ce code juste en html pour un exemple
http://leprojet.legtux.org/plandusite.html
donc ma question : es ce que je doit repeter le code autant de fois que j'ai un dossier ou bien il y un moyen sans repeter le code 150 fois lol
et l'autre question si je met coté page.php une image php et page.css ca sera une image css
comment on peut le detecter
j'ai fait le css avec ca
.structure13 { background: url(./images/plan/structure/css.png) no-repeat -1px -3px; border-color:gray; /* on affiche la couleur de la bordure */ border-style: dotted; /* on affiche le style de l'a bordure */ border-width:0px 0px 0px 1px; /* top right bottom left */ margin:-12px 0px 0px 40px; /* top right bottom left */ padding:0px 0px 25px 30px; /* top right bottom left */ } .structure14 { background: url(./images/plan/structure/html.png) no-repeat -1px -3px; border-color:gray; /* on affiche la couleur de la bordure */ border-style: dotted; /* on affiche le style de l'a bordure */ border-width:0px 0px 0px 1px; /* top right bottom left */ margin:-12px 0px 0px 40px; /* top right bottom left */ padding:0px 0px 25px 30px; /* top right bottom left */ } .structure15 { background: url(./images/plan/structure/js.png) no-repeat -1px -3px; border-color:gray; /* on affiche la couleur de la bordure */ border-style: dotted; /* on affiche le style de l'a bordure */ border-width:0px 0px 0px 1px; /* top right bottom left */ margin:-12px 0px 0px 40px; /* top right bottom left */ padding:0px 0px 25px 30px; /* top right bottom left */ } .structure15 { background: url(./images/plan/structure/php.png) no-repeat -1px -3px; border-color:gray; /* on affiche la couleur de la bordure */ border-style: dotted; /* on affiche le style de l'a bordure */ border-width:0px 0px 0px 1px; /* top right bottom left */ margin:-12px 0px 0px 40px; /* top right bottom left */ padding:0px 0px 25px 30px; /* top right bottom left */ }
merci de ton petit aide
Utilisateur anonyme
Modifié par nagashima le 30/01/2014 à 17:18
Modifié par nagashima le 30/01/2014 à 17:18
Ok donc dans un premier temps, il sera plus simple de faire une fonction récursive qui listera tes fichiers :
et la tester :
(penser à remplacer le /home par le répertoire que tu souhaite).
au moins on pourra ensuite se focaliser sur le reste mais on sera sûr que tu as bien la liste des fichiers.
ensuite pour afficher ton arbre en graphique, on verra ensuite, et je t'avous ne pas être une flèche en css x)
quand tu auras créé et valider ta fonction, tu araus déjà la liste complète avec le chemin complet de tous les fichiers du répertoire et ses ss répertoire.
naga
function ListFiles($dir) { if($dh = opendir($dir)) { $files = Array(); $inner_files = Array(); while($file = readdir($dh)) { if($file != "." && $file != ".." && $file[0] != '.') { if(is_dir($dir . "/" . $file)) { $inner_files = ListFiles($dir . "/" . $file); if(is_array($inner_files)) $files = array_merge($files, $inner_files); } else { array_push($files, $dir . "/" . $file); } } } closedir($dh); return $files; } }
et la tester :
foreach (ListFiles('/home/') as $key=>$file){ echo $file ."<br />"; }
(penser à remplacer le /home par le répertoire que tu souhaite).
au moins on pourra ensuite se focaliser sur le reste mais on sera sûr que tu as bien la liste des fichiers.
ensuite pour afficher ton arbre en graphique, on verra ensuite, et je t'avous ne pas être une flèche en css x)
quand tu auras créé et valider ta fonction, tu araus déjà la liste complète avec le chemin complet de tous les fichiers du répertoire et ses ss répertoire.
naga
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
css ne t'occupe pas c'est moi qui vas le faire
voilà l'erreur
Warning: opendir(/modules/): failed to open dir: No such file or directory in /var/www/legtux.org/users/leprojet/modules/struturesite.php on line 22
Warning: Invalid argument supplied for foreach() in /var/www/legtux.org/users/leprojet/modules/struturesite.php on line 18
merci de m'expliquer et faire le code pour ceux que je voudrai
voilà l'erreur
Warning: opendir(/modules/): failed to open dir: No such file or directory in /var/www/legtux.org/users/leprojet/modules/struturesite.php on line 22
Warning: Invalid argument supplied for foreach() in /var/www/legtux.org/users/leprojet/modules/struturesite.php on line 18
merci de m'expliquer et faire le code pour ceux que je voudrai
c'est ma faute, il ne faut pas l'entourer de '/'.
Par exemple, j'ai fais ce code pour tester chez moi :
qui fonctionne très bien.
L'idée ensuite sera faire un tableau à plusieurs dimensions, mais j'y reviendrai. Essaye déjà d'afficher toute cette liste de fichier ;) (mmh question con mais quelle est ta version de php?)
Par exemple, j'ai fais ce code pour tester chez moi :
<?php function ListFiles($dir) { if($dh = opendir($dir)) { $files = Array(); $inner_files = Array(); while($file = readdir($dh)) { if($file != "." && $file != ".." && $file[0] != '.') { if(is_dir($dir . "/" . $file)) { $inner_files = ListFiles($dir . "/" . $file); if(is_array($inner_files)) $files = array_merge($files, $inner_files); } else { array_push($files, $dir . "/" . $file); } } } closedir($dh); return $files; } } print_r(ListFiles('images')); ?>
qui fonctionne très bien.
L'idée ensuite sera faire un tableau à plusieurs dimensions, mais j'y reviendrai. Essaye déjà d'afficher toute cette liste de fichier ;) (mmh question con mais quelle est ta version de php?)
il me fait ca
Array ( )
je ne sais pas qu'elle est ma version
tu me dit ou il se trouve et je te dit
Array ( )
je ne sais pas qu'elle est ma version
tu me dit ou il se trouve et je te dit
merci là il m'affiches
http://leprojet.legtux.org/struturesite.html
on dirais qu'il affiche les sous dossier du dossier modules
hier j'avais mis images là il met array()
donc là j'ai mis modules et je vois tout les pages et sous dossier
http://leprojet.legtux.org/struturesite.html
on dirais qu'il affiche les sous dossier du dossier modules
hier j'avais mis images là il met array()
donc là j'ai mis modules et je vois tout les pages et sous dossier
<?php function ListFiles($dir) { if($dh = opendir($dir)) { $files = Array(); $inner_files = Array(); while($file = readdir($dh)) { if($file != "." && $file != ".." && $file[0] != '.') { if(is_dir($dir . "/" . $file)) { $inner_files = ListFiles($dir . "/" . $file); if(is_array($inner_files)) $files = array_merge($files, $inner_files); } else { array_push($files, $dir . "/" . $file); } } } closedir($dh); return $files; } } print_r(ListFiles('modules')); ?>
bon on y arrive x)
Donc maintenant que tu as la liste des fichiers avec leur chemin complet, chaque dossier étant séparé par un '/' ( ou '\' ).
Là tu as la logique pour parcourir et lister, il ne te reste qu'à mettre en place des éléments pour structurer. C'est à toi de décider de la manière de faire, je t'es fais un exemple pour t'aider un peu, à toi de t'en inspirer ou non :
ici aussi il faut changer 'images' par 'module'
naga
Donc maintenant que tu as la liste des fichiers avec leur chemin complet, chaque dossier étant séparé par un '/' ( ou '\' ).
Là tu as la logique pour parcourir et lister, il ne te reste qu'à mettre en place des éléments pour structurer. C'est à toi de décider de la manière de faire, je t'es fais un exemple pour t'aider un peu, à toi de t'en inspirer ou non :
<?php class threeFiles { var $dir; var $subArraySubFolders; var $files; function getString() { $returnValue = ''; $returnValue .= $this->dir . "<UL>"; foreach($this->files as $s) $returnValue .= "<LI>" . $s . "</LI>"; foreach($this->subArraySubFolders as $tf) $returnValue .= "<LI>" . $tf->getString() . "</LI>"; $returnValue .="</UL>"; return $returnValue; } } function ListFiles($dir) { if($dh = opendir($dir)) { $tf = new threeFiles(); $tf->dir = $dir; $tf->files = Array(); $tf->subArraySubFolders = Array(); $i = 0; while($file = readdir($dh)) { if($file != "." && $file != ".." && $file[0] != '.') { if(is_dir($dir . "/" . $file)) { $tf->subArraySubFolders[$i] = ListFiles($dir . "/" .$file); $i++; } else { array_push($tf->files,$file); } } } closedir($dh); return $tf; } } echo('v1'); echo(ListFiles('images')->getString()); ?>
ici aussi il faut changer 'images' par 'module'
naga
une dernière question après c'est bon
comment mettre le dossier en 1 er position et en sous des dossier c'est les pages
et pour afficher un autre dossier a la racine je doit copier le code et remplacer modules par design
et pour les sous dossier
au lieu de mettre
modules/tuto
on affiche
module
tuto
sans le mettre des /
comment mettre le dossier en 1 er position et en sous des dossier c'est les pages
et pour afficher un autre dossier a la racine je doit copier le code et remplacer modules par design
et pour les sous dossier
au lieu de mettre
modules/tuto
on affiche
module
tuto
sans le mettre des /
j'ai tester en mettant le css ca me donne
http://leprojet.legtux.org/struturesite.html
il y a 2 ou 3 truc que je n'arrives pas a le faire
1 er chose il y as modules/admin et moi j'ai supprime le / en remplacant par un <br /> mais ca se plante
2 eme chose : j'ai voulu aligner le dossier module sur la 1 er collonneet sous dossier sur un deuxiememe collonne
3 eme chose c'est de mettre en premier les nom des dossier et ensuite les pages
es ce que tu pourrais ds le code le faire
et tu rajoute des commentaire /////*****
et tu mettra ceux que ca fait
http://leprojet.legtux.org/struturesite.html
il y a 2 ou 3 truc que je n'arrives pas a le faire
<?php class threeFiles { var $dir; var $subArraySubFolders; var $files; function getString() { $returnValue = '<ul><li class="structure12">'; $returnValue .= $this->dir . "<br />"; foreach($this->files as $s) $returnValue .= "<br />" . $s . ""; foreach($this->subArraySubFolders as $tf) $returnValue .= "<br />" . $tf->getString() . ""; $returnValue .="</il></ul>"; return $returnValue; } } function ListFiles($dir) { if($dh = opendir($dir)) { $tf = new threeFiles(); $tf->dir = $dir; $tf->files = Array(); $tf->subArraySubFolders = Array(); $i = 0; while($file = readdir($dh)) { if($file != "." && $file != ".." && $file[0] != '.') { if(is_dir($dir . "/" . $file)) { $tf->subArraySubFolders[$i] = ListFiles($dir . "/" .$file); $i++; } else { array_push($tf->files,$file); } } } closedir($dh); return $tf; } } echo('v1'); echo(ListFiles('modules')->getString()); ?>
1 er chose il y as modules/admin et moi j'ai supprime le / en remplacant par un <br /> mais ca se plante
2 eme chose : j'ai voulu aligner le dossier module sur la 1 er collonneet sous dossier sur un deuxiememe collonne
3 eme chose c'est de mettre en premier les nom des dossier et ensuite les pages
es ce que tu pourrais ds le code le faire
et tu rajoute des commentaire /////*****
et tu mettra ceux que ca fait
$returnValue .="</il></ul>";
déjà tu as une erreur ici ("il" ...).
-1 : ce qu'il te faut c'est récupérer la partie de droite (admin) plutot que modules/admin (je serai plutot pour dire de le retirer à l'affichage pour ne pas retoucher le code de parcours). Donc utiliser la fonction explode en php (https://www.php.net/manual/fr/function.explode.php
-2 : corrige le "li" on verra ensuite ce que ca donne
-3 : pas difficile => tu n'as que 2 foreaach dans la méthode d'affiche ... suffit de mettre en premier les répertoires.
donc
function getString() { //--on récupère le nom court du sous rep $arrRep = explode("/", $this->dir); $subDir = $arrRep[count($arrRep)-1]; //--On écris le nom du rep $returnValue = '<ul><li class="structure12">'; $returnValue .= $subDir . "<br />"; //--on récupère chaque ssrep foreach($this->subArraySubFolders as $tf) $returnValue .= "<br />" . $tf->getString() . ""; //--on récupère les fichiers de notre rep foreach($this->files as $s) $returnValue .= "<br />" . $s . ""; $returnValue .="</li></ul>"; return $returnValue; }
naga
voilà le code avec class
j'ai mis une bordure pour te montrer
donc il faut que les dossier et sous dossier passe en haut du contour du cadre de la struture1 si tu remarque sur l'image dossier il y a une petite bordure qui decend dc c pour ca qu'il faut mettre le dossier en haut du cadre et non a l'interieur
j'ai essayer de mettre la class structure 1 ds cette parti là
echo '';
echo('v1');
echo(ListFiles('modules')->getString());
echo '';
mais ca bug
et ensuite il faut rajouter une nouvelle class struture2 là c'est pour afficher juste une image horizontal qui vas etre situer sur les .php
<div class="structure_site"> <?php class threeFiles { var $dir; var $subArraySubFolders; var $files; function getString() { //--on récupère le nom court du sous rep $arrRep = explode("/", $this->dir); $subDir = $arrRep[count($arrRep)-1]; //--On écris le nom du rep $returnValue = '<ul><li class="structure1">'; $returnValue .= $subDir . "<br />"; //--on récupère chaque ssrep foreach($this->subArraySubFolders as $tf) $returnValue .= "<br />" . $tf->getString() . ""; //--on récupère les fichiers de notre rep foreach($this->files as $s) $returnValue .= "<br />" . $s . ""; $returnValue .="</li></ul>"; return $returnValue; } } function ListFiles($dir) { if($dh = opendir($dir)) { $tf = new threeFiles(); $tf->dir = $dir; $tf->files = Array(); $tf->subArraySubFolders = Array(); $i = 0; while($file = readdir($dh)) { if($file != "." && $file != ".." && $file[0] != '.') { if(is_dir($dir . "/" . $file)) { $tf->subArraySubFolders[$i] = ListFiles($dir . "/" .$file); $i++; } else { array_push($tf->files,$file); } } } closedir($dh); return $tf; } } echo ''; echo('v1'); echo(ListFiles('modules')->getString()); echo ''; ?> </div>
j'ai mis une bordure pour te montrer
donc il faut que les dossier et sous dossier passe en haut du contour du cadre de la struture1 si tu remarque sur l'image dossier il y a une petite bordure qui decend dc c pour ca qu'il faut mettre le dossier en haut du cadre et non a l'interieur
j'ai essayer de mettre la class structure 1 ds cette parti là
echo '';
echo('v1');
echo(ListFiles('modules')->getString());
echo '';
mais ca bug
et ensuite il faut rajouter une nouvelle class struture2 là c'est pour afficher juste une image horizontal qui vas etre situer sur les .php
oui enfin mon but n'est pas de développer ton site, je pense t'avoir fourni suffisamment de piste et morceaux de codes pour que tu puisse le modeler à ta sauce en comprenant le code et en réfléchissant.
Si tu as une erreur précise durant ton dev, n'hésites pas à demander, mais ici tu ne trouvera personnes qui te développera des solutions complètes ( pour ca, on est payé ^^).
bon dev.
naga
Si tu as une erreur précise durant ton dev, n'hésites pas à demander, mais ici tu ne trouvera personnes qui te développera des solutions complètes ( pour ca, on est payé ^^).
bon dev.
naga
je comprend, je vais essayer
sinon tu pourras regarde ma question sur mon calendrier
https://forums.commentcamarche.net/forum/affich-29620689-question-sur-mon-calendrier
c juste 2 question
merci
sinon tu pourras regarde ma question sur mon calendrier
https://forums.commentcamarche.net/forum/affich-29620689-question-sur-mon-calendrier
c juste 2 question
merci