Listage repertoire page

Résolu
Eliays Messages postés 67 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 29 janvier 2009 - 18 mai 2007 à 16:08
sparko_dutos Messages postés 9 Date d'inscription dimanche 28 mars 2004 Statut Membre Dernière intervention 1 juin 2011 - 10 juil. 2007 à 18:40
Bonjour voici mon code :

<?
$path = ".";
$dh = opendir($path);
$i=1;
while (($file = readdir($dh)) !== false) {
    if($file != "." && $file != ".." && $file != "index.php") {
        echo "$i. $file
";
        $i++;
    }
}
closedir($dh);
?>

J'aurais besoin d'aide pour afficher 10 fichier par page avec les liens pour faire page suivant et precedent. je voudrais limiter a 10 fichier par page.
Merci de votre aide.

6 réponses

sparko_dutos Messages postés 9 Date d'inscription dimanche 28 mars 2004 Statut Membre Dernière intervention 1 juin 2011
10 juil. 2007 à 18:40
Comme ca peut etre ??

http://www.phpcs.com/codes/LISTING-REPERTOIRE-AVEC-AFFICHAGE-PAGE-PAGE_43407.aspx
Merci d'avoir suggéré l'idée :)

Faites l'amour pas la guerre
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 mai 2007 à 18:24
Salut,

Le mieux à faire est de stocker la liste de tes fichiers dans un tableau numérique et en fonction de la page demandée, afficher les indices x à y.

<?
$path = ".";
$num_page = intval($_GET['page']);
$dh = opendir($path);
while (($file = readdir($dh)) !== false) {
if($file != "." && $file != ".." && $file != "index.php") {
$files_list[] = $file;
echo "$i. [%s/%s %s]
', $k, $path, $files_list[$i], $files_list[$i]);
$k++;
}
?>

J'ai pas testé, le code peut être buggué... Mais dans l'idée, tu vois un peu...

N.B. : pour être conformes XHTML (puisque je constate que tu utilises
qui n'est pas du HTML4 mais du XHTML 1.x), les valeurs des attributs des balises DOIVENT être entre guillemets doubles et non simples... :
[url url]

Bonne continuation.
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 mai 2007 à 18:28
Ah mince, j'y pense seulement après avoir posté...
Y'a sûrement moyen de ne faire qu'une seule boucle, ce qui économise un peu de processeur.

<?
$path = ".";
$num_page = intval($_GET['page']);
$dh = opendir($path);
$i=0;
$debut = ($num_page - 1) * 10;
$fin = $debut + 9;
while (($file = readdir($dh)) !== false) {
if($file != "." && $file != ".." && $file != "index.php") {
if ($i>=$debut && $i<=$fin) {
printf('%s. [%s/%s %s]
', $i+1, $path, $file, $file);
}
$i++;
}
}
closedir($dh);
?>

En plus, y'avait une erreur, il faut utiliser printf et pas sprintf.
0
Eliays Messages postés 67 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 29 janvier 2009
19 mai 2007 à 12:14
salut, merci pour la reponsse mais aucun des2 code ne marche :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
19 mai 2007 à 17:18
Désolé si ça ne marche pas, mais t'es pas très explicite sur ce qui ne marche pas

Comme je disais :
"J'ai pas testé, le code peut être buggué... Mais dans l'idée, tu vois un peu..."

Maintenant si t'arrives pas à t'inspirer du code que j'ai écrit...
0
Eliays Messages postés 67 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 29 janvier 2009
10 juil. 2007 à 16:04
je nai toujour pas trouver comment faire..
0
Rejoignez-nous