8797 sujets

Développement web côté serveur, CMS

Salut, j'ai un souci pour l'affichage des résultats d'un script que je souhaiterai affiché sur 2 voir 3 colonnes.

Voici le script en question il fonctionne pour un affichage sur 1 seule colonne mais vu que la liste est plutôt longue ce n'est pas très esthétique:

<?php
{
//extension a exclure
$Extensions = (eregi(".php",$Fichier) or eregi(".htm",$Fichier) or eregi(".html",$Fichier));
$Exclu=array(".", "..",);
set_time_limit(0);
// Début du tableau d affichage des fichiers ne portant pas l'extension voulu
?>
<table border="1" cellspacing="0" bordercolordark="white" bordercolorlight="white" align="center" width="90%" bordercolor="white">
    <tr>
        <td width="100%" align="left" style="font-weight:bold; color:#FFFFCC; background-color:gray;">
<p>Voici la liste des fichiers ne portant pas les extensions php, htm, html,</td>
    </tr>
    <tr>
        <td width="100%" align="left">
            <br>&nbsp;
<?php
//fonction pour le scanne des fichiers
function scandir($Dossier)
//debut de la fonction scandir
{
// ouverture de $Dossier
$Chemin  = opendir($Dossier);
// Boucle 
while  ($Fichier = readdir($Chemin))
//debut de la boucle pour la recherche de tous les fichiers n aillant pas la bonne extension
{
//si le script localise un repertoire il affiche :
if(is_dir("$Dossier/$Fichier")==true && $Fichier != "." && $Fichier != "..")
{
//on exclue les fichiers nommee dans les paramètres 
if(in_array($Fichier, $Exclu)){ continue; }
// Début du scan auto
scandir("$Dossier/$Fichier");
//fin du if d affichage pour les dossiers non exclue
}
//si ce n est pas un dossier on effectue les opérations suivantes
else
//debut du if d affichage pour les fichiers
{
//on exclue les fichiers nommee dans les paramètres
if(in_array($Fichier, $Exclu)){ continue; }
//si c est un fichier dont l extension n apparait pas dans les paramètres on affiche ceci :
if ($Extensions == false)
{ ?>
<b><font color="#009933">- <?php echo $Fichier ; ?><br></font></b>
<?php
}
//fin du if d affichage pour les fichiers
}
//fin de la boucle pour la recherche des fichiers exclus de la recherche
} 
//On ferme le scan
closedir($Chemin);
//fin de la fonction scandir .. (deux points fait la recherche en allant d un dossier en arrière
}
scandir("../..");
//fin du if pour le scanne et la mise a jour de la base de donnée
 } 
//Une fois tous les fichiers et dossiers scanner  on ferme le tableau
?>
</td>
    </tr>
</table>

Modifié par kilian67 (18 Jul 2008 - 14:42)
Peux-tu préciser quels résultats doivent s'afficher dans le tableau, et comment ils sont différencier pour pouvoir être scindé en colonne ?
Et bien en fait le script scan tous les fichiers et dossiers présent sur le serveur de mon hebergeur et n'affiche que les fichiers ne portant pas les extensions .php . htm .html, c'est à dire qu'il affiche tous les fichiers .jpg .gif .asp .txt etc ....

Mais le script tels qu'il est écrit dans mon premier post affiche les résultats sur une seule et unique colonne et comme la liste est plutôt longue ce n'est pas très jolie. Smiley sweatdrop
Modifié par kilian67 (17 Jul 2008 - 19:52)
Salut kilian67 Smiley cligne ,

Tout d'abord 2 pitites remarques :

* ça n'est pas une bonne idée de donner le même nom à une de ses fonctions qu'une déjà existante : cf. scandir.

* les variables $Extensions et $Exclu devraient être déclarées à l'intérieur de la fonction (ou alors il faudrait utiliser le mot clé global). Et d'ailleurs $Extensions devrait se trouver juste avant le test if ($Extensions == false)


Pour ta question je vois 2 solutions :

* soit tu veux utiliser une table et limiter le nombre de lignes verticales : dans ce cas au lieu de faire un echo tu alimentes un array() et après en fonction du nombre de résultat (cf. count) tu crées le nombre de colonnes que tu veux.

* soit tu fais ta boucle entre <ul> et <ul> et tu écris un <li> par fichier puis tu modifies le css (il y a d'ailleurs un sujet qui en parlait aujourd'hui).

A+
Modifié par Heyoan (17 Jul 2008 - 20:40)
Merci Heyoan j'ai donc fait ça qui fonctionne

<html>
<head>
</head>
<body>
<?php
$GLOBALS["Tfiles"]=array();
 
function p_scandir($Dossier)
	{
	// ouverture de $Dossier
	$Tfiles = array();
	$Chemin  = opendir($Dossier);
	$Extensions = array("php","htm","html");
	$Exclu=array(".", "..",);
	// Boucle 
	while  ($Fichier = readdir($Chemin))
	//debut de la boucle pour la recherche de tous les fichiers n aillant pas la bonne extension
		{
		//si le script localise un repertoire il affiche :
		if(is_dir("$Dossier/$Fichier")==true && $Fichier != "." && $Fichier != "..")
		{
			//on exclue les fichiers nommee dans les paramètres 
			if(in_array($Fichier, $Exclu)){ continue; }
			// Début du scan auto
			p_scandir("$Dossier/$Fichier");
			//fin du if d affichage pour les dossiers non exclue
			}
		//si ce n est pas un dossier on effectue les opérations suivantes
		else
		//debut du if d affichage pour les fichiers
		{
			//on exclue les fichiers nommee dans les paramètres
			if(in_array($Fichier, $Exclu)){ continue; }
			$e = explode(".",$Fichier);
			//si le fichier a une extension permise
			if (!in_array($e[1],$Extensions)){
				array_push($GLOBALS["Tfiles"],$Fichier);
			}
			//fin du if d affichage pour les fichiers
		}
		//fin de la boucle pour la recherche des fichiers exclus de la recherche
	} 
	//On ferme le scan
	closedir($Chemin);
	//fin de la fonction scandir .. (deux points fait la recherche en allant d un dossier en arrière
	}
 
 
p_scandir("../..");
$nbr_colonne = 4;
echo '<table border="0">';
echo '<tr>';
$i=0;
foreach($GLOBALS["Tfiles"] as $v){
	$td .= '<td>'.$v.'</td>';
	if ($i % $nbr_colonne == 0){
		echo '</tr><tr>';
	}else{
		echo $td;
		$td='';	
	}
	$i++;	
}
echo '</tr>';
echo '</table>';
?>
</body>
</html>