|
|
|
|
function addScheme($entry,$base,$type)
{
$tab['name'] = $entry;
$tab['type'] = filetype($base."/".$entry);
$tab['date'] = filemtime($base."/".$entry);
$tab['size'] = filesize($base."/".$entry);
$tab['perms'] = fileperms($base."/".$entry);
$tab['access'] = fileatime($base."/".$entry);
$t = explode(".", $entry);
$tab['ext'] = $t[count($t)-1];
return $tab;
}
/* liste des dossiers */
function list_dir($base, $cur, $level=0)
{
global $PHP_SELF, $BASE, $order, $asc;
if ($dir = opendir($base)) {
$tab = array();
while($entry = readdir($dir))
{
if( is_dir($base."/".$entry) && !in_array($entry, array(".","..") ) )
{
$tab[] = addScheme($entry, $base, 'dir');
}
}
/* tri */
usort($tab,"cmp_name");
foreach($tab as $elem)
{
$entry = $elem['name'];
/* chemin relatif à la racine */
$file = $base."/".$entry;
/* marge gauche */
for($i = 1 ; $i <= (4*$level) ; $i++)
{
echo " ";
}
/* l'entrée est-elle le dossier courant */
if($file == $cur)
{
echo "<img src=\"dir-open.gif\" /> $entry<br />\n";
} else
{
echo "<img src=\"dir-close.gif\" /> <a href=\"$PHP_SELF?dir=". rawurlencode($file) ."&order=$order&asc=$asc\">$entry</a><br />\n";
}
/* l'entrée est-elle dans la branche dont le dossier courant est la feuille */
if(ereg($file."/",$cur."/"))
{
list_dir($file, $cur, $level+1);
}
}
closedir($dir);
}
}
/* liste des fichiers */
function list_file($cur)
{
global $PHP_SELF, $order, $asc, $order0;
if ($dir = opendir($cur))
{
/* tableaux */
$tab_dir = array();
$tab_file = array();
/* extraction */
while($file = readdir($dir))
{
if(is_dir($cur."/".$file))
{
if( !in_array($file, array(".","..") ) )
{
$tab_dir[] = addScheme($file, $cur, 'dir');
}
}else
{
$tab_file[] = addScheme($file, $cur, 'file');
}
}
/* Contient encore plus de code, mais c'est inutile pour mon problème */
function assocExt($ext)
{
$e = array(
'' => "Unknown",
'BAT' => "Batch file",
'SYS' => "System File",
'doc' => "Microsoft Word",
'log' => "Log",
'xls' => "Microsoft Excel",
'ppt' => "Microsoft Power Point",
'pdf' => "Adobe Acrobat",
'zip' => "WinZip Archive",
'txt' => "Document texte",
'bmp' => "Bitmap",
'gif' => "GIF Image",
'jpg' => "JPEG Image",
'png' => "PNG Image",
'php' => "PHP Script",
'php3' => "PHP Script",
'htm' => "Web page",
'html' => "Web page",
'css' => "Cascading Style Sheet",
'js' => "JavaScript"
);
if( in_array($ext, array_keys($e)) )
{
return $e[$ext];
} else {
return $e[''];
}
}
Configuration: Windows XP Firefox 2.0.0.4
|
Entre temps, j'ai essayé de faire une fonction qui ressemble à function assocExt($ext). Le voici :
function sameExt($ext)
{
$e = array(
'BAT',
'SYS',
'doc',
'log',
'xls',
'ppt',
'pdf',
'zip',
'txt',
'bmp',
'gif',
'jpg',
'png',
'php',
'php3',
'htm',
'html',
'css',
'js'
);
if( in_array($ext, $e) )
{
return $e[$ext];
}
}
Pour moi il y'a un hic, comment faire pour mettre ça dans la boucle qui liste les fichiers pour afficher le nombre d'extension identique ? Le code entier m'a été fourni, je suis stagiaire et le php est un langage que je n'ai jamais utilisé auparavant... Please help ! (=^_^=)
|
|
En cherchant sur la toile j'ai trouvé ma réponse.
En modifiant le code trouvé, j'ai réussi à faire quelque chose de super. Même si personne a pu m'aider, je post ici le bout de code utile qui scan le contenu du dossier et affiche le nombre d'extensions présentent dans ce dernier.
function browse($dir, $pExtension)
{
if($handle = opendir($dir))
{
while(false !== ($file = readdir($handle)))
{
$getExt = explode(".", $file);
$countExt = count($getExt);
$fExt = $countExt - 1;
$myExt = $getExt[$fExt];
if (($myExt == $pExtension) && ($file != ".") && ($file != ".."))
{$files[] = $file;}
}
}
return $files;
closedir($handle);
}
// Séparez les extensions par un espace.
$gExtension = "exe mp3 php zip doc txt BAT SYS log xls ppt pdf bmp gif jpg png php3 htm html css js";
$ExpExt = explode(" ", $gExtension);
sort($ExpExt);
foreach($ExpExt as $findExt)
{
$getFile = @browse($dir, $findExt); /* N'oubliez pas de spécifier le chemin $dir (= ".") */
$countFile = count($getFile);
if($countFile != 0)
{
echo "<b>Fichier(s) ".strtoupper($findExt)."</b> (".$countFile.")<br />";
foreach($getFile as $myFile)
{
echo "- ".$myFile."<br />";
}
echo "<br>";
}
}
Exemple d'output : Fichier(s) PHP (2) : - index.php - page1.php Fichier(s) MP3 (1) : - lolo.mp3 Merci quand même ! |
Salut,
il vraiment super cool ton code, j'ai quand même un question, pour moi, ce que je suis en train de faire, il faut que à chaque fichier xml trouvé, il afficher "salut <br>" et ça je suis sûr que je peux utiliser ton code mais je ne sais pas comment le transformer pour que je puisse faire ça et comment le transformer aussi pour qu'il puisse faire pas que dasn un seul dossier mais aussi dans les dossier en dessus de celui qui est définit dans $dir ?? si tu m'apporter un peux d'aide sur cela ça serait bien volontiers @++ SRN |
| 02/06 13h53 | [Hébergement] Choisir un hébergeur gratuit ou payant | Hébergement |
| 05/02 15h33 | Unable to load dynamic library '/usr/lib/php4/20020429/mysql.so | PHP |
| 15/03 20h08 | Connexion à une base Ingres avec PHP | Ingres |
| 02/11 11h14 | [Webmaster] Un formulaire de contact pour votre site | Webmaster |
| 21/04 12h07 | Connexion à une base Oracle en php | Oracle |
| 08/11 11h48 | [PHP] tri des colonnes d'un tableau | 3 |
| 09/07 09h49 | [PHP] Tri avec MySQL | 2 |
| 16/07 09h50 | Php tri de dates avec la fonction explode | 2 |
| 30/05 10h29 | [PHP] Tri naturel avec natcasesort() | 0 |
![]() | PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de... | Catégorie: PHP Licence: Freeware/gratuit |
![]() | Toutes les extensions (petits modules complémentaires) de Firefox - Au lieu d'énumérer toutes les extensions (petits modules complémentaires) de Fire fox , allez dans le menu outils de... | Catégorie: Extensions Firefox Licence: Freeware/gratuit |
![]() | Trillian - Trillian est un des clients de messagerie instantanée les plus aboutis. Il est compatible avec AIM®, MSN®, ICQ®, Yahoo!®, et... | Catégorie: Messagerie instantanée Licence: Open Source |
![]() | Change Extension - Ce petit logiciel, permet de changer l'extension d'un fichier, avec un simple clic droit sur le fichier en question. Plus... | Catégorie: Système Licence: Freeware/gratuit |
![]() | HP Pavilion a6441.fr-m AMD | Catégorie: Ordinateur de bureau | 698.90 € Rue du Commerce |
![]() | AMD Phenom 8650 Triple-Core | Catégorie: Processeur | 109.90 € Toutpourlamicro.com |
![]() | AMD Phenom 8750 Triple-Core | Catégorie: Processeur | 139.00 € Cdiscount |
![]() | AMD Phenom 8450 Triple-Core | Catégorie: Processeur | 79.90 € Toutpourlamicro.com |