Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/07/2008, 15h18   #1
Membre chevronné
 
Avatar de ProgVal
 
Homme Valentin Lorentz
Étudiant
Inscription : mai 2006
Messages : 624
Détails du profil
Informations personnelles :
Nom : Homme Valentin Lorentz
Âge : 18
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 624
Points : 644
Points : 644
Envoyer un message via MSN à ProgVal Envoyer un message via Skype™ à ProgVal
Par défaut listing des fichiers

Bonjour,

Un ami m'a créé la fonction suivante pour lister les fichiers d'un répertoire:
Code :
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
function listing($repertoire)
{
    $fichier = array();
    if (is_dir($repertoire))
    {
        $dir = opendir($repertoire); //ouvre le repertoire courant désigné par la variable que je t'est mis tout en bas...
        while(false!==($file = readdir($dir)))
        { //lit tout et on récuper tous les fichiers dans "$file"
            if(!in_array($file, array('.','..')))
            {
                $page = $file; //affiche l'extension du fichier...
                $page = explode('.', $page);
                $nb = count($page);
                $nom_fichier = $page[0];
                for ($i = 1; $i < $nb-1; $i++)
                {
                    $nom_fichier .= '.'.$page[$i];
                }
                if(isset($page[1])){
                    $ext_fichier = $page[$nb-1];
                    if(!is_file($file)) { $file = ''.$file; }
                }
                else {
                    if(!is_file($file)) { $file = '/'.$file; } //c'est sensé rajouter un "/" devant les dossier, pour qu'il soit en début de lisrte...
                    $ext_fichier = '';
                }
                    if($ext_fichier != 'php' and $ext_fichier != 'html') 
                { //pour exclure certain types de fichiers...
                    array_push($fichier, $file);
                }
            }
        }
    }
    natcasesort($fichier); //fonction de tri (ignore la casse)...
    foreach($fichier as $value) {
    echo '<a href="'.rawurlencode(str_replace ('/', '', $value)).'">'.$value.'</a><br />';
    }
}
Cependant, il y a un problème: si le lien sur lequel on clique est un dossier, alors il est ouvert avec l'affichage de base d'un FTP.
Comment faire pour qu'il s'ouvre dans une page PHP, et qui affiche sont contenu?

Merci d'avance,
ProgVal
__________________
Troll à temps plein.
ProgVal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2008, 14h54   #2
Membre habitué
 
Avatar de berti
 
Inscription : août 2007
Messages : 214
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : août 2007
Messages : 214
Points : 125
Points : 125
je te passe ça j'ai un code que j'avais fait qui marche pas mal

Code :
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
 
	$adresse="lechemin/";
 
	$lien="";
 
	echo "<table width='500' border='0' cellspacing='5' cellpadding='0' align='center'>";
 
	echo "<tr><td colspan='2'><img src='interface/arbo.png' widht='30' height='30' align='absmiddle' >";
	//on traite le repertoire pour enlever les / et les espaces
	$tok = strtok($adresse,"/");
	while ($tok !== false) 
	{
		//on reconstitue les liens des segments
		$lien="$lien$tok/";
		if ($lien!="./")
		{
			echo "<a class='noundlnk' href='http://127.0.0.1/fichier/ouvrir.php?identifiant=$lien'>-".UTF8_decode($tok)."</a>";
		} 
		$tok = strtok(" /");
	}
	echo"</td></tr></br>";
 
	$dossier=opendir($adresse); 
	while ($fichier = readdir($dossier)) 
	{
		//test si repertoire
		if(is_dir($adresse.$fichier)&&($fichier<>".")&&($fichier<>".."))  
		{
			$lien="$adresse$fichier/";
			echo "<tr><td width='30'><img src='interface/dossier.png' widht='30' height='30' align='absmiddle'></td><td width='470'><a href='http://127.0.0.1/fichier/ouvrir.php?identifiant=$lien' target='_parent' class='lienfic'>$fichier</a></td></tr>";
		}
	}
	closedir($dossier);
	echo "</br>";
	$dossier=opendir($adresse); 
 
	while ($fichier = readdir($dossier)) 
	{
		//test si fichier
		if(is_file($adresse.$fichier))  
		{
			$lie = "$adresse$fichier";
			$lien = substr($lie, 3);
 
			switch($fichier) 
			{ 
				case strpos($fichier,".doc")!==false: 
					echo "<tr><td width='30'><img src='interface/doc.png' widht='28' height='28' align='absmiddle'></td><td width='470' class='lienfic'><a href='http://127.0.0.1/$lien' target='_parent' class='lienfic'>$fichier</a></td></tr>";
					break; 
				case strpos($fichier,".rtf")!==false: 
					echo "<tr><td width='30'><img src='interface/doc.png' widht='28' height='28' align='absmiddle'></td><td width='470'><a href='http://127.0.0.1/$lien' target='_parent' class='lienfic'>$fichier</a></td></tr>";
					break;				
				case strpos($fichier,".xls")!==false: 
					echo "<tr><td width='30'><img src='interface/xls.png' widht='28' height='28' align='absmiddle'></td><td width='470'><a href='http://127.0.0.1/$lien' target='_parent' class='lienfic'>$fichier</a></td></tr>";
					break; 
				case strpos($fichier,".csv")!==false: 
					echo "<tr><td width='30'><img src='interface/xls.png' widht='28' height='28' align='absmiddle'></td><td width='470'><a href='http://127.0.0.1/$lien' target='_parent' class='lienfic'>$fichier</a></td></tr>";
					break; 
				case strpos($fichier,".ppt")!==false: 
					echo "<tr><td width='30'><img src='interface/ppt.png' widht='28' height='28' align='absmiddle'></td><td width='470'><a href='http://127.0.0.1/$lien' target='_parent' class='lienfic'>$fichier</a></td></tr>";
					break; 
				case strpos($fichier,".pps")!==false: 
					echo "<tr><td width='30'><img src='interface/ppt.png' widht='28' height='28' align='absmiddle'></td><td width='470'><a href='http://127.0.0.1/$lien' target='_parent' class='lienfic'>$fichier</a></td></tr>";
					break; 
				case strpos($fichier,".pub")!==false: 
					echo "<tr><td width='30'><img src='interface/pub.png' widht='28' height='28' align='absmiddle'></td><td width='470'><a href='http://127.0.0.1/$lien' target='_parent' class='lienfic'>$fichier</a></td></tr>";
					break; 
				case strpos($fichier,".pdf")!==false: 
					echo "<tr><td width='30'><img src='interface/pdf.png' widht='28' height='28' align='absmiddle'></td><td width='470'><a href='http://127.0.0.1/$lien' target='_parent' class='lienfic'>$fichier</a></td></tr>";
					break; 
				case strpos($fichier,".zip")!==false: 
					echo "<tr><td width='30'><img src='interface/zip.png' widht='28' height='28' align='absmiddle'></td><td width='470'><a href='http://127.0.0.1/$lien' target='_parent' class='lienfic'>$fichier</a></td></tr>";
					break; 
				case strpos($fichier,".rar")!==false: 
					echo "<tr><td width='30'><img src='interface/rar.png' widht='28' height='28' align='absmiddle'></td><td width='470'><a href='http://127.0.0.1/$lien' target='_parent' class='lienfic'>$fichier</a></td></tr>";
					break; 
				default: 
					echo "<tr><td width='30'><img src='interface/fichier.png' widht='28' height='28' align='absmiddle'></td><td width='470'><a href='http://127.0.0.1/$lien' target='_parent' class='lienfic'>$fichier</a></td></tr>";
					break;  
			}
		}
	}
	closedir($dossier);
?>
berti est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h01.


 
 
 
 
Partenaires

Hébergement Web