Lister les fichiers images d'un répertoire et les trier par nom

Résolu/Fermé
selva88 Messages postés 6 Date d'inscription mardi 26 août 2014 Statut Membre Dernière intervention 26 août 2014 - Modifié par pico.l le 26/08/2014 à 13:31
selva88 Messages postés 6 Date d'inscription mardi 26 août 2014 Statut Membre Dernière intervention 26 août 2014 - 26 août 2014 à 19:51
Bonjour à tous,
j'ai un répertoire contenant des images de type jpg avec des noms comportant des chiffres et des lettres. : EXemple:
00169541100_20970704_TOTO_TATA_20000000.jpg
00169541101_20970704_TOTO_TATA_20000000.jpg. je souhaite considérer uniquement les lettres commençant à la position 22 c'est à dire à partir de TOTO pour faire le tri
mais j'ai utiliser la fonction sort mais il ne me trie pas correctement
<?php
$mydir = "c:/img";
if ($dir = opendir($mydir));
{

while (($file = readdir($dir)) !== false)
{
if($file != ".." && $file != ".")
{
$filelist[ ] = $file;

}
}
closedir($dir);
}

if(sizeof($filelist) != 0) {
sort($filelist);
}
?>

Quelqu'un pourrait il me donner une idée pour faire un le tri selon ces critères? D'avance merci de votre aide.

1 réponse

Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
Modifié par Fallentree le 26/08/2014 à 12:35
passe par un tableau annexe auquel tu auras ôté les 22 premiers caractères .
c est un genre de array_map avec une fonction utilisant strstr() qui retourne le segment 22 à la fin ...ou if (stripos() >0)
puis un genre de array_intersect_key
pour finir par ton sort
0
selva88 Messages postés 6 Date d'inscription mardi 26 août 2014 Statut Membre Dernière intervention 26 août 2014
26 août 2014 à 13:27
Bonjour Fallentree,
merci beaucoup pour ta réponse rapide. je suis débutante en php, je n'ai pas très bien compris comment formaliser cela dans mon code. je fait des recherches sur stripos et array_map pour voir comment les utiliser. avez vous des liens à me proposer?ou quelqu'un aurait il fait quelque chose de ce genre une fois?
0
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
26 août 2014 à 15:09
https://www.php.net/manual/fr/function.array-map.php
https://www.php.net/manual/fr/function.substr.php
https://www.php.net/manual/fr/function.array-intersect-key.php

function lesphotosdetoto($filename)
{
return(substr($filename,22,strlen($filename));
}
$b = array_map("lesphotosdetoto", $filelist);
sort($b);
printr_r(array_intersect_key($b, $filelist));
0
selva88 Messages postés 6 Date d'inscription mardi 26 août 2014 Statut Membre Dernière intervention 26 août 2014
26 août 2014 à 16:57
J'ai essayer ce ci:
 
$mydir = "c:/img";
if ($dir = opendir($mydir));
{

while (($file = readdir($dir)) !== false)
{
if($file != ".." && $file != ".")
{
$filelist[ ] = $file;

}
}
closedir($dir);
}
for($i=0; $i<sizeof( $filelist);$i++)
{
$fi[]=substr($filelist[$i], 40,300);
}

for($i=0; $i<sizeof( $filelist);$i++)
{

sort($fi);
echo $fi[$i];
}
les éléments qui s'affichent sont bien trié, mais quand j'ouvre le répertoire img, les images ne sont pas trié dans le dossier; je souhaite que les fichiers soient triés dans le dossier. Merci d'avance.
0
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
Modifié par Fallentree le 26/08/2014 à 18:12
dans le dossier ????
tu as un tableau issu de la lecture avec readdir($dir))
Ils n'interagissent pas
qu es ce que tu veux faire avec tes photos de toto ???
Les supprimer, les afficher ... les trier n'a pas de sens en soi.

sinon tu pourrais peut etre, en cherchant un peu, comme avec un explorer de dossier classique, les trier par date nom de fichier ...

https://www.php.net/manual/fr/function.scandir.php
0
selva88 Messages postés 6 Date d'inscription mardi 26 août 2014 Statut Membre Dernière intervention 26 août 2014
26 août 2014 à 18:18
Merci pour ta réponse. En fait je veux que les fichiers contenu dans le répertoire soit trier dans le dossier, par ce que la suite de mon programme parcours, le dossier et généré un fichier XML. Si les images ne sont pas trier dans le dossier, ça fausse. Par exemple dans le répertoire, toutes les images TATA doivent se suivre, ensuite celle portant TATA ainsi de suite.
0