8791 sujets

Développement web côté serveur, CMS

Suite a un tutorial, j'ai réalisé un lecteur de repertoire mais hélas quand je lit plusieur répertoire dans ma page (en recopiant le code mais en changeant le nom du repertoire) le premier repertoire se lit bien mais le deuxieme lit le premier et le deuxième et le troisième lit le 1, 2 et 3, et malgré de nombreux essai, je n'arrive à rien (il faut dire que je ne connait pas grand chose en php).

Voici le code de ma page (du moins de mes quartres "lecteur de repertoire") :

Le Premier :
 
<?
$rep = "../bandes-annonces/";
$dir = opendir($rep);
$maxtop = 9;

while ($f = readdir($dir)) // lecture et tri par date de création
   if(is_file($rep.$f))
        for($k=1;$k<=$maxtop;$k++)
         if(filectime($rep.$f) > $toplk[$k][1]) {
            $s0 = filectime($rep.$f) ; $u0 = $f;
            for($kk = $k;$kk<=$maxtop;$kk++) {
               $s = $toplk[$kk][1] ; $u = $toplk[$kk][2];
               $toplk[$kk][1] = $s0 ; $toplk[$kk][2] = $u0;
               $s0 = $s ; $u0 = $u;
			  			  }
            break;
         }
closedir($dir);

for($k=1;$k<=$maxtop;$k++) { // affichage
 ?> <A href="javascript:playMovie('http://maitre.ewok.free.fr/tv/flv/bandes-annonces/<? echo $toplk[$k][2];?>')"><IMG SRC="http://maitre.ewok.free.fr/tv/flv/images/<? echo $toplk[$k][2];?>.png"</A><br>
 
 <A href="javascript:playMovie('http://maitre.ewok.free.fr/tv/flv/bandes-annonces/<? echo $toplk[$k][2];?>')"><? echo str_replace(".flv","",$toplk[$k][2]);?></A>
<? } ?>
<br> </br>


Le deuxieme :
 
<?
$rep = "../jeux-video/";
$dir = opendir($rep);
$maxtop = 9;

while ($f = readdir($dir)) // lecture et tri par date de création
   if(is_file($rep.$f))
        for($k=1;$k<=$maxtop;$k++)
         if(filectime($rep.$f) > $toplk[$k][1]) {
            $s0 = filectime($rep.$f) ; $u0 = $f;
            for($kk = $k;$kk<=$maxtop;$kk++) {
               $s = $toplk[$kk][1] ; $u = $toplk[$kk][2];
               $toplk[$kk][1] = $s0 ; $toplk[$kk][2] = $u0;
               $s0 = $s ; $u0 = $u;
			  			  }
            break;
         }
closedir($dir);

for($k=1;$k<=$maxtop;$k++) { // affichage
 ?> <A href="javascript:playMovie('http://maitre.ewok.free.fr/tv/flv/bandes-annonces/<? echo $toplk[$k][2];?>')"><IMG SRC="http://maitre.ewok.free.fr/tv/flv/images/<? echo $toplk[$k][2];?>.png"</A><br>
 
 <A href="javascript:playMovie('http://maitre.ewok.free.fr/tv/flv/bandes-annonces/<? echo $toplk[$k][2];?>')"><? echo str_replace(".flv","",$toplk[$k][2]);?></A>
<? } ?>
<br> </br>


Etc...

Et voilà la page au final.

Auriez-vous une idée du problème et de comment le résoudre?

J'aurais aussi aimé que le nombre de fichier lu soit illimité (qu'il n'y est pas de "maxtop") mais malgré de nombreux essaie je n'ai rien pu faire...

Merci d'avance pour votre aide.
Modifié par Malf (08 Sep 2007 - 17:02)
Salut Malf Smiley cligne ,

en ayant lu en diagonale je dirais que tu ne réinitialises pas ton tableau.
Rajoutes $toplk=array(); après chaque $maxtop = 9;;

A+ Smiley smile
Merci beaucoup ! Que d'éfficacité et de rapidité dans la réponse. Tout marche à merveille , encore merci. Smiley biggrin
Sinon (désoler de revenir à la charge aussi longtemps après) mais personne ne serait comment ne pas mettre de nombres de videos maximum ? Malgrés le fait que le code repose un peu sur la base sur ce "maxtop" ...
Merci d'avance.
Salut,

quelque chose comme ça :
<?php
$rep = "../bandes-annonces/";
$dir = opendir($rep);
$toplk = array();
while ($f = readdir($dir)) { // lecture et tri par date de création
	if(is_file($rep.$f)) {
		$toplk[$f] = filectime($rep.$f);
	}
}
arsort($toplk);
//print_r($toplk);
//echo'<br /><br />';
foreach($toplk as $fichier => $date) {   // Affichage des résultats ?>
 <a href="javascript:playMovie('http://maitre.ewok.free.fr/tv/flv/bandes-annonces/<?php echo $fichier; ?>')"><img src="http://maitre.ewok.free.fr/tv/flv/images/<?php echo $fichier; ?>.png"</a><br />
 <a href="javascript:playMovie('http://maitre.ewok.free.fr/tv/flv/bandes-annonces/<?php echo $fichier; ?>')"><?php echo str_replace(".flv", "", $fichier); ?></a>
<?php } ?>

A+ Smiley smile
Modifié par Heyoan (06 Sep 2007 - 02:21)
Merci ! Smiley lol Toujours aussi rapide et juste ! Merci encore et cette fois c'est bon, j'arrete de vous embettez Smiley ravi ...
salut


çà marche, c'est normal.mais que ce passe t'il si une erreur survient?

un bon gros message d'erreur php donc, trop bavard...méfiez vous toujours d'opendir et consorts et gérez toujours les erreurs possibles.


<?php
$rep = "../bandes-annonces/";
$dir = opendir($rep);
$toplk = array();
while ($f = readdir($dir)) { // lecture et tri par date de création
	if(is_file($rep.$f)) {
		$toplk[$f] = filectime($rep.$f);
	}
}
arsort($toplk);
//print_r($toplk);
//echo'<br /><br />';
foreach($toplk as $fichier => $date) {   // Affichage des résultats ?>
 <a href="javascript:playMovie('http://maitre.ewok.free.fr/tv/flv/bandes-annonces/<?php echo $fichier; ?>')"><img src="http://maitre.ewok.free.fr/tv/flv/images/<?php echo $fichier; ?>.png"</a><br />
 <a href="javascript:playMovie('http://maitre.ewok.free.fr/tv/flv/bandes-annonces/<?php echo $fichier; ?>')"><?php echo str_replace(".flv", "", $fichier); ?></a>
<?php } ?>


alors çà franchement Smiley bawling

imaginez 300/400 lignes de php codés de cette façon...bonne chance pour la maintenance. Smiley cligne
Dis-donc keran, je vois pas bien ce que ce genre de remarque apporte !

Si tu penses que le code devrait être optimisé tu en mets un meilleur et voilà tout... Chacun ici ne demande qu'à s'améliorer alors inutile d'être condescendant Smiley fache !