PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 24-02-2020 18:51:06

jadu29
Membre
Inscription : 15-08-2012
Messages : 5

Ordre alphabétique non respecté sur mon site !

Bonjour à tous !
Je reviens ici car la vieillesse roll me surveille et essaye de m'embrouiller ! Mais je compte sur vous pour m'aider !;)
Voilà le but de ma prose :
J'ai un code en PHP qui liste un répertoire en ordre alphabétique en local : je le place ci-dessous


<?php
// affichage des zéreures
ini_set('display_errors', 1);
error_reporting(E_ALL);
// on va mettre les infos dans un fichier temporaire
$ficTemp=fopen('repertBrut.txt','w');
if (!$ficTemp) {
  echo "C'est raté !";
  exit();
}
// ouvre le repertoire en cours
$path = './'; // Chemin du répertoire
$dp = opendir($path);
  $i=0;
  while ( $file = readdir($dp) ) {
    // enleve les fichiers . et ..
    if ($file != '.' && $file != '..' && $file !='repertBrut.txt')  {
      // codification utf-8 pour un affichage uniforme
      if (mb_detect_encoding($file, 'UTF-8', true) === false) {$file = utf8_encode($file); }
      // cherche la postion du '.'  
      $position = strpos($file,".");
      // enleve l'extention, tout ce qui se trouve apres le '.'
      $file=(substr($file, 0, $position));
      // on passe les datas dans un tableau
      $ListFiles[$i]=$file;
      $i++;
      // on place chaque valeur dans le fichier ficTemp
      $OK=($file)."\n \r";
      fwrite($ficTemp,$OK);
      //echo "$OK <br />";
    }
  }
fclose($ficTemp);
//echo "<hr />";
// affiche les fichiers par ordre alphabetique
$fic = file("./repertBrut.txt");
$total = count($fic);
for  ($i = 0; $i < $total; $i++) {
  $aff=$fic[$i];
  /*echo "<strong>stroupper($aff)</strong><br />";*/
  $pass='../../actuel/act-txt/';
    $pic=trim($pass,".");
    $ouf=trim($aff);
  echo "<a href=$pic$ouf.php>$fic[$i]</a><br />\n";
}
echo "<hr />";
?>
 

Testez-le, vous verrez que c'est top ( changez le $path = './'; // Chemin du répertoire - si vous voulez ! )

mais sur mon site, il s'affiche en désordre le plus complet !!!

Edit modo : C'est pas ici qu'on fait sa pub wink

Je vous remercie pour votre aide généreuse et désintéressée ! lol
et ...
Prenez bien soin de vous !
Vous êtes à la meilleure place pour le faire !

Hors ligne

#2 25-02-2020 10:52:42

jadu29
Membre
Inscription : 15-08-2012
Messages : 5

Re : Ordre alphabétique non respecté sur mon site !

MODO a écrit :

Edit modo : C'est pas ici qu'on fait sa pub smile

OK, je sais bien mais c'était pour montrer que sur le site c'est tout en désordre que j'avais placè le lien vers une page où c'est en service !

Mais non, roll je ne fais jamais de pub, je ne vends rien, .... je donne tout ce que je crois savoir hmm !

Mais j'aimerais de l'aide pour avoir un truc propre sur mon site !

Dernière modification par jadu29 (25-02-2020 10:54:38)

Hors ligne

#3 06-04-2020 10:45:07

jadu29
Membre
Inscription : 15-08-2012
Messages : 5

Re : Ordre alphabétique non respecté sur mon site !

Bon ! vu plus de 6 000 fois big_smile et pas une idée ???
je ne suis donc pas seul à devenir vieux ? wink

Please,:rolleyes: help me !

Hors ligne

#4 06-04-2020 11:28:19

jadu29
Membre
Inscription : 15-08-2012
Messages : 5

Re : Ordre alphabétique non respecté sur mon site !

Bref j'ai trouvé ! c'était simple, il me fallait replonger dans le manuel mais en travaillant un peu !
Voici mon code fonctionnel :

<?php
// affichage des zéreures
ini_set('display_errors', 1);
error_reporting(E_ALL);
// on va mettre les infos dans un fichier temporaire
$OK="";
$ficTemp=fopen('repertBrut.txt','w');
if (!$ficTemp) {
  echo "C'est raté !";
  exit();
}
// ouvre le repertoire en cours
$path="../act-txt"; // Chemin du répertoire
$dp = opendir($path);
  $i=1;
  while ( $file = readdir($dp) ) {
    // enleve les fichiers . et .. et autres
    if ($file != '.' && $file != '..' && $file !="repertBrut.txt" && $file !="fichier-type.php" ) {
      // codification utf-8
      if (mb_detect_encoding($file, 'UTF-8', true) === false) {
        $file = utf8_encode($file);
      }
      // cherche la postion du '.'  
      $position = strpos($file,".");
      // enleve l'extention, tout ce qui se trouve apres le '.'
      $file=(substr($file, 0, $position));
      // on passe les datas dans un tableau
      $ListFiles[$i]=$file;
      $i++;
    }
  }
  closedir($dp);
// ******************************
echo '<hr>';
$col = collator_create('en_FR');  
collator_sort($col,$ListFiles);
foreach ($ListFiles as $key => $val) {
  $ak=trim($val); // pour assurer
    $ext=".php";
    echo "<a href=../actuel/$path/$ak$ext>$ak</a><br />";
}
?>

Si ça peut aider un autre vieux commemoi !!!;););)

la modif est là !
$col = collator_create('en_FR');     
collator_sort($col,$ListFiles);
foreach ($ListFiles as $key => $val) {
    $ak=trim($val); // pour assurer
    $ext=".php";
    echo "<a href=../actuel/$path/$ak$ext>$ak</a><br />";
}

bisous à tous
cool

Hors ligne

Pied de page des forums