Page 1 sur 1
fonction sort() conflit de groupe
Posté : 18 mars 2011, 02:55
par dogmongo
Bonjour,
je viens de développer une fonction qui devrait me lister les fichiers d'un répertoire dans l'ordre alphabétique, la solution que j'ai trouvé est de générer un tableau array() puis de le sortir via une boucle juste après avoir remis mon tableau array dans l'ordre via sort()
à la première exécution tout semble tourner correctement, mais non certain fichier font ce qu'il veulent et ce place pas en ordre, au début je me suis dis qu'il doit s'agir d'un problème avec les extensions de mes fichiers (.GIF,.JPG, etc.) , après vérification non c'est pas ca, du coup je file voir sur le serveur pour voir quelques propriétés qui pourrait me donner une idée du problème et effectivement j'ai découvert que si les fichier ne sont pas du même nom de groupe la fonction sort() me crée plusieurs listes par ordre alphabétique effectivement mais sépare malheureusement les groupes
exemple:
aafichier1.jpg => nom de groupe "apache"
aafichier2.jpg => " " " "apache"
bbfichier1.jpg => " " " "apache"
bbfichier2.jpg => " " " "apache"
aafichier1.jpg => " " " "psacln"
aafichier3.jpg => " " " "psacln"
bbfichier4.jpg => " " " "psacln"
bbfichier5.jpg => " " " "psacln"
quelqu'un aurait une solution pour que la fonction sort() ignore les noms de groupe et cree un classement tous fichiers compris
merci d'avance
dog
Re: fonction sort() conflit de groupe
Posté : 18 mars 2011, 11:56
par eyolas
Quel est l'intérêt de cette fonction ?
Il existe déjà une fonction qui permet de faire la liste des fichiers en php.
http://fr2.php.net/manual/fr/function.scandir.php
Re: fonction sort() conflit de groupe
Posté : 18 mars 2011, 12:07
par dogmongo
Bonjour,
J'ai utilisé opendir() qui ne me listait pas les fichiers dans l'odre, scandir() le fera t elle ? , je t'avous que je n'y est pas pensé parce que je ne la connaissais pas mais j'ai pas envis de tout recoder pour rien si ca me donne le même résultat.
Merci de ta réponse
Re: fonction sort() conflit de groupe
Posté : 18 mars 2011, 12:43
par dogmongo
Bon et bien après avoir fais quelques essais le résultat est le même, mais 'ai bien ta fonction elle me donne une clé qui peut etre bien utile pour d'autre utilisation
Re: fonction sort() conflit de groupe
Posté : 19 mars 2011, 03:07
par devlop78
Il n'y a pas de raison ... il n'y a pas d'espaces avant certains noms, des majuscules .. ?
Re: fonction sort() conflit de groupe
Posté : 19 mars 2011, 13:20
par dogmongo
non j'ai vérifié aucun soucis de nomage, c'est une des première vérification que j'ai fais
Re: fonction sort() conflit de groupe
Posté : 20 mars 2011, 03:43
par devlop78
Entre le moment où tu listes tes fichiers, et le moment où tu tries, aucun lien n'a été gardé ... pas vrai ? Donc il n'y a pas de raison. Je dis pas que ton problème n'existe pas (la preuve tu es ici), mais c'est forcément tout bête
bref. Si tu as un Array avec tes fichiers.
Tu fais sort(). Tout est trié.
Mais si tu as deux Array. Que tu fais sort() et que tu array_merge dessus. forcément ... Mais j'ose imaginer que ce n'est pas le cas.
Bref ... si tu fais ord() sur substr($nom,0,1) de chaque fichier, ça donne quoi ? C'est à croire qu'il y a un caractère non imprimable quelque part ...
Re: fonction sort() conflit de groupe
Posté : 21 mars 2011, 11:53
par dogmongo
je te montre la fonction peu être qu etu y verra quelques chose qui m'a échappé
function list_rep($newRep,$niveau,$racine,$parts)
{
$icoExtention = array (".jpg" => "ico_jpg.jpg", ".gif" => "ico_gif.jpg", ".png" => "ico_png.jpg", ".JPG" => "ico_jpg.jpg", ".GIF" => "ico_gif.jpg", ".PNG" => "ico_png.jpg");
$extensions = array('.jpg','.gif','.JPG','.GIF');
$repertoire = opendir("photo/$newRep");
$table = array();
while($varFichier = readdir($repertoire))
{
$extension = strrchr($varFichier, '.');
if(in_array($extension, $extensions)){
$table[].= $varFichier;
}
}
sort($table);
for ( $i=0 ; $i < count($table); $i ++){
$BT_date = date ("j-m-Y", filemtime("photo/$newRep".'/'.$table[$i]));
$type = strstr("photo/$newRep".'/'.$table[$i] , ".");
$lien ="photo/$newRep".'/'.$table[$i];
$BT_type = substr($lien , -3);
$BT_type = "<img src=\"../image/".$icoExtention[$type]."\" alt=\"type d'image $type\" />";
echo"<tr><td><label><input name=\"listchoix[]\" type=\"checkbox\" value=\"photo\$newRep\$table[$i]\"></label></td><td>$BT_date</td><td>$table[$i]</td><td>$BT_type</td></tr>";
}
closedir($dp);
}
merci de ton aide
Re: fonction sort() conflit de groupe
Posté : 21 mars 2011, 16:35
par eyolas
J'ai testé ton script et je n'ai aucun problème.
Re: fonction sort() conflit de groupe
Posté : 21 mars 2011, 18:48
par dogmongo
c'est donc un problème de serveur et de droit lié à plesk, en gros tout les fichiers que j'ai envoyé par upload sont dans lordre alphabétique de tête, ensuite j'ai la suite des autres fichiers qui eux aussi sont dans l'odre alphabéthique mais eux envoyer via ftp, d'ou le nom de groupe diférent pour résoudre le problème il faudrait que je puisse tous leur donner le même nom de groupe.
merci quand même de t'être penché sur mon souci
Re: fonction sort() conflit de groupe
Posté : 21 mars 2011, 23:29
par moogli
Re: fonction sort() conflit de groupe
Posté : 22 mars 2011, 10:03
par dogmongo
je viens de remettre les même propriétaire et bingo ca ne vient pas de ca, je suis furieux je ne parviendrai pas à trouver ou ca cloche j'ai l'impression.
Re: fonction sort() conflit de groupe
Posté : 22 mars 2011, 10:09
par dogmongo
oh j'y crois pas je viens de voir que sorte() sépare les fichier dont la première lettre est en minuscule ou en majuscule

Re: fonction sort() conflit de groupe
Posté : 23 mars 2011, 19:53
par devlop78
Je comprends pas ? Si ton message veut dire ce que j'ai compris, alors c'est que tu as mal lu ma réponse te conseillant de vérifier les majuscules. Par défaut, une fonction basique de tri va se contenter de faire le tri avec le code ASCII (on reste simple) des lettres. En fait, c'est plutot un tri binaire ... mais comme B se trouve après A ... ça tombe bien
Mais dans ton exemple, il n'y a pas de majuscule ...
aafichier1.jpg => nom de groupe "apache"
aafichier2.jpg => " " " "apache"
bbfichier1.jpg => " " " "apache"
bbfichier2.jpg => " " " "apache"
aafichier1.jpg => " " " "psacln"
aafichier3.jpg => " " " "psacln"
bbfichier4.jpg => " " " "psacln"
bbfichier5.jpg => " " " "psacln"
Donc je n'ai pas du bien comprendre ce que tu as voulu dire...
Re: fonction sort() conflit de groupe
Posté : 24 mars 2011, 12:09
par dogmongo
Oui j'ai fais une boulette j'aurai du montrer un vrai exemple, du coup je n’ai pas solutionné mon problème mais je l'ai anticipé en obligeant les uploade à mettre les noms de fichier tout en minuscule, pour ton message sur les majuscules je suis passé complètement à travers désolé.
en tout cas merci de t'être intéressé a mon problème, sachant d'ou vient mon souci je vais mettre le post "résolu" en espérant trouver une solution un peu plus simple
