[Php] - Question simple...
Résolu
WDAssos
Messages postés
70
Statut
Membre
-
Reivax962 Messages postés 3742 Statut Membre -
Reivax962 Messages postés 3742 Statut Membre -
Salutations,
J'ai juste une question simple.
Je cherche à compter, QUELQUE SOIT LA TAILLE DE L'EXTENSION (Majuscules comme minuscules), les fichiers dépandant d'une certaine extension...
En gros, j'ai dans un dossier des ".JPG" et des ".jpg", et je cherche à comptabiliser l'ensemble...
Pour l'instant, j'en suis la :
"(...)
<?
$rep = '../pict/photos';
$vig = '../pict/photos/thumbs';
$ext = 'jpg';
$extup = 'JPG';
$ipl = '4';
$wid = '120';
$widtab = '96%';
$bor = '0';
$cpd = '0';
$cpd = '0';
$cls = 'art';
//Donne l'extension d'un fichier
function extension($fichier)
{
ereg("\.([^\.]*$)", $fichier, $beuha);
return $beuha[1];
}
$lstrep = glob($rep.'/*.'.$ext);
$lstrepup = glob($rep.'/*.'.$extup);
$lstrep2 = current($lstrep);
// $lstrep3 = strtolower($lstrep); // on met en minuscule
$comptrep = count($lstrep);
$comptrepup = count($lstrepup);
$lstvig = glob($vig.'/*.'.$ext);
$lstvigup = glob($vig.'/*.'.$extup);
$lstvig2 = current($lstvig);
$comptvig = count($lstvig);
$comptvigup = count($lstvigup);
// extension du fichier
$xploderep = explode('.',$lstrep2);
$extensionrep = $xploderep[sizeof($xploderep)-1]; // dernier element
//
echo 'Extension du fichier final : '.$extensionrep.'<br />';
// extension du fichier
$xplodevig = explode('.',$lstvig2);
$extensionvig = $xplodevig[sizeof($xplodevig)-1]; // dernier element
// $extensionvig = strtolower($extensionvig); // on met en minuscule
echo 'Extension du fichier vignette : '.$extensionvig.'<br />';
echo '<div align="center">';
echo '<table width="'.$widtab.'" border="'.$bor.'" cellpadding="'.$cpd.'" cellspacing="'.$csc.'"><tr>';
echo '<td align="center">Nombre de photos : '.$comptrep.'<br />Nombre de photos (Maj.) : '.$comptrepup.'</td>';
echo '<td align="center">Nombre de miniatures : '.$comptvig.'<br />Nombre de miniatures (Maj.) : '.$comptvigup.'</td>';
echo '</tr></table>';
(...)"
Mais je pense que mon code est un poil fastidieux...
A vous lire,
J'ai juste une question simple.
Je cherche à compter, QUELQUE SOIT LA TAILLE DE L'EXTENSION (Majuscules comme minuscules), les fichiers dépandant d'une certaine extension...
En gros, j'ai dans un dossier des ".JPG" et des ".jpg", et je cherche à comptabiliser l'ensemble...
Pour l'instant, j'en suis la :
"(...)
<?
$rep = '../pict/photos';
$vig = '../pict/photos/thumbs';
$ext = 'jpg';
$extup = 'JPG';
$ipl = '4';
$wid = '120';
$widtab = '96%';
$bor = '0';
$cpd = '0';
$cpd = '0';
$cls = 'art';
//Donne l'extension d'un fichier
function extension($fichier)
{
ereg("\.([^\.]*$)", $fichier, $beuha);
return $beuha[1];
}
$lstrep = glob($rep.'/*.'.$ext);
$lstrepup = glob($rep.'/*.'.$extup);
$lstrep2 = current($lstrep);
// $lstrep3 = strtolower($lstrep); // on met en minuscule
$comptrep = count($lstrep);
$comptrepup = count($lstrepup);
$lstvig = glob($vig.'/*.'.$ext);
$lstvigup = glob($vig.'/*.'.$extup);
$lstvig2 = current($lstvig);
$comptvig = count($lstvig);
$comptvigup = count($lstvigup);
// extension du fichier
$xploderep = explode('.',$lstrep2);
$extensionrep = $xploderep[sizeof($xploderep)-1]; // dernier element
//
echo 'Extension du fichier final : '.$extensionrep.'<br />';
// extension du fichier
$xplodevig = explode('.',$lstvig2);
$extensionvig = $xplodevig[sizeof($xplodevig)-1]; // dernier element
// $extensionvig = strtolower($extensionvig); // on met en minuscule
echo 'Extension du fichier vignette : '.$extensionvig.'<br />';
echo '<div align="center">';
echo '<table width="'.$widtab.'" border="'.$bor.'" cellpadding="'.$cpd.'" cellspacing="'.$csc.'"><tr>';
echo '<td align="center">Nombre de photos : '.$comptrep.'<br />Nombre de photos (Maj.) : '.$comptrepup.'</td>';
echo '<td align="center">Nombre de miniatures : '.$comptvig.'<br />Nombre de miniatures (Maj.) : '.$comptvigup.'</td>';
echo '</tr></table>';
(...)"
Mais je pense que mon code est un poil fastidieux...
A vous lire,
5 réponses
-
-
Esc9G : Oui, aussi, mais peu importe, une fois que je saurais faire pour 2, 3 ça ne sera pas un pb... ;-)
khalilkhalil : Heu, je n'ai rien compris... Speak English ? -
-
Bonjour,
Tu pourrais essayer quelque chose comme ça.
L'avantage, c'est que tu définis sans problème autant d'extensions / de répertoires que tu veux, sans devoir modifier tout le code.
<?php //Donne l'extension d'un fichier function extension($fichier) { ereg("\.([^\.]*$)", $fichier, $beuha); return strtolower($beuha[1]); } function getTypeFromFichier($fichier) { $type = ""; $ext = extension($fichier); switch ($ext) { case "bmp": case "gif": case "jpg": case "png": $type = $ext; break; case "jpeg": $type = "jpg"; break; default: $type = "autre"; break; } return $type; } // On initialise le tableau qui contient les données $repertoiresAChercher = array(); $repertoiresAChercher[] = array("chemin" => '../pict/photos', "nom" => 'photos', "detail" => array()); $repertoiresAChercher[] = array("chemin" => '../pict/photos/thumbs', "nom" => 'vignettes', "detail" => array()); // On boucle sur ce tableau foreach($repertoiresAChercher as $cle => $valeur) { // Pour chaque chemin, on parcourt tous les fichiers $rep = opendir($valeur['chemin']); while (false !== ($fichier = readdir($rep))) { if($fichier != '..' && $fichier !='.' && $fichier != '' && !is_dir($rep."/".$fichier)) { $type = getTypeFromFichier($fichier); if (!isset($repertoiresAChercher[$cle]['detail'][$type])) $repertoiresAChercher[$cle]['detail'][$type] = 0; $repertoiresAChercher[$cle]['detail'][$type]++; } } } // $repertoiresAChercher contient maintenant pour chaque répertoire à chercher, son chemin, son nom, et un tableau donnant pour chaque type de fichier le nombre existant. // On le parcourt à nouveau pour l'affichage. foreach($repertoiresAChercher as $rep) { echo "<div>Nombre de ".$rep['nom']." : <blockquote>"; foreach($rep["detail"] as $cle => $valeur) echo "$cle : $valeur fichiers<br />"; echo "</blockquote></div>"; } ?>
Xavier
PS : j'ai codé ça à l'instant, sans tester. Il peut y avoir des erreurs de syntaxe, je te laisse les résoudre. Tu peux toujours me poser des questions s'il le faut, mais je ne répondrai sans doute pas avant demain. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
pour vous il faut travailler c tres simple moi 2 année informatique et je sais comment fait cet algorithme allez fait le principe apres .....................................................