1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
| <?php
////creer un sommaire a partir de fichier dans un repertoire avec leur titre et le lien ////(dans un tableau)
// on ouvre le répertoire contenant les fichiers a traiter
$dir = opendir("monrepertoire/");
// on initialise le compteur a 1 pour ne pas avoir zero d'afficher devant le premier fichier !
$i = 1;
// on commence le tableau...
echo "<table>\n\n";
//on commence à contruire le fichiers. celui ci ! tel qu'il sera envoyer au "browser".
$faire_fichier = "<table>\n<tr>\n";
// lit le contenu du répertoire
while($file = readdir($dir))
//on trie et élimine les résultats parasites
if(eregi(".html",$file) || eregi(".htm",$file) || eregi(".txt",$file) || eregi(".php",$file))
// on rajoute autant de "|| eregi("extension de fichier",$file))"que necessaire
if(ereg("^\.?\.+$", $file) || ereg( "sommaire", $file))
// les noms de fichiers contenant sommaire ne seront pas pris en compte ! inutile de s'autoindexer !
{
// on détruit $file quand devenue inutile !
unset($file);
}
else // sinon on peut commencer a créer le contenu du tableau !
{
////////////////on cherche le titre du fichier $file///////////c'etait mon soucis/////////////////////////
//on ouvre le fichier
$fichier = fopen ("$file", "r");
// commentaire: "r" = ouverture en lecture seule
if (!$fichier) {
// ! = erreur, pas trouver le fichier, en principe la boucle s'est deja arreter et ce cas de figure ne devrait pas arriver
echo "<p>Impossible de lire la page.\n";
// donc message d'avertissement
exit;
}
while (!feof ($fichier)) {
$line = fgets ($fichier, 1024);
// commentaire:lecture des premier 1023 caracteres ca devrait suffire.sinon augmenter
//Cela ne fonctionne que si les balises Title sont correctement utilisées et reinseignèes
if (eregi ("<title>(.*)</title>", $line, $trouve)) {
$title = $trouve[1];
break;
//break parceque pas d'autre (else) truc a faire a la place...
}
}
// on ferme le fichier !
fclose($fichier);
//////////////c'est fait !//////on a le nom du fichier (et l'endroit ) et son titre////////////////////////////////
{
//construit une colonne du tableau
$colonne = " <td valign='middle' align='center'>\n ".
//la remplie
"<a href='monrepertoire/$file'>$i - $trouve[1]</a>\n </td>\n";
// la on prend le numero de fichier par curiosite et pour donner un nom au lien du fichier qui n'aurait pas de titre
{
unset($trouve[1]);
//on efface le titre pour qu'il ne soit reutiliser ou prochain fichier qui n'aurait,lui pas de titre !nous avons deja un numero.
}
// si le reste de $i / 3 (le nombre de colonnes désirées) égale 1 et LA TU REMPLACE 3 PAR 2 ! ET TU AS 2 COLONNES !
// que $i n'en est pas à sa première itération (pour éviter d'avoir une
// ligne "<tr>" parasite au début, c'est que l'on peut commencer une ligne
if ($i%3==1)
{
echo "\n<tr>\n"; // on commence une ligne du tableau
$faire_fichier .= "\n<tr>\n";
}
if($i %3 !=1 OR $i %3 == 1)
{
echo "$colonne"; // on affiche une colonne
$faire_fichier .="$colonne";
}
$i++; // on incrémente le compteur
// puisque $i a été incrémenté une ligne plus haut, la condition
// ci-dessous recevra une valeure de $i différente du début de la
// boucle, donc on peut fermer la ligne
if ($i%3==1)
{
echo "\n</tr>\n";
$faire_fichier .= "\n</tr>\n";
}
}
}
echo "\n</table>"; // on ferme le tableau
$faire_fichier .= "\n</table>";
closedir($dir); // on ferme le répertoire
//on peut maintenant sauvegarder ce sommaire dans fichier pour le reutiliser en static
if ($monsommaire = fopen("sommaire.html", "w+")) // creer ou reecrit le fichier
{
// on insert la variable $faire_fichier construite précédement dans le fichier html
fputs($monsommaire, "$faire_fichier");
// et voila le fichier est pret a etre utilisé
}
fclose($monsommaire);
///pour mieux comprendre ne pas hesiter a consulter les differents dico et exemple en ligne ,
// on fini toujours par ce bricoler un truc simple qui marche
?> |
Partager