Lister et Afficher le contenu des pages d'un dossier

Mammouth du PHP | 686 Messages

22 mars 2007, 22:16

Bonsoir, j'ai quelques bases de PHP ett je me retrouve avec casse tête et j'ai parcouru toute la toile à la recherche de la solution.

Je developpe un site qui contient un annuaire. Mon site est divisé en plusieurs rubrique et chaque rubrique possede un dossier. Je voudrai que lorsque l'on clique sur le lien par exemple annuaire.php?rubrique=jeuxvideos la pege qui s'affichera ensuite me listera le contenu de toutes les pages web qui sont dans mon dossier jeuxvideos.

Merci d'avance et j'espere que mon explication est a peu près claire

Eléphanteau du PHP | 49 Messages

23 mars 2007, 00:02

Hmmm ... Si tu veux vraiment le faire seul...
tes pages web "jeux vidéos" sont-elles:
1 - dans des fichiers différents?
2 - pas encore créées et tu en es au webdesign ?
3 - dans une base de données ?

1 : parcours de dossier via opendir(), readdir(), fopen() &co
2 : utilise une base de données !
3 : bon choix ... :) Tu les auras en utilisant une requête de type
"SELECT * FROM article,categorie WHERE article.id_categorie=categorie.id_categorie AND categorie.name_categorie='".$_GET['rubrique']."'"
(attention, cette requête n'est qu'un exemple)


sinon il existe des CMS tout à fait aptes à t'aider :) Notamment SPIP (cf. un site fait sous spip)
Modifié en dernier par ghalaad le 23 mars 2007, 00:24, modifié 1 fois.

Mammouth du PHP | 686 Messages

23 mars 2007, 00:15

Eh bien c'est qu'en fait en bases de donnée moi c'est pas ca du tout. En fait ce serait une page ou lorsque je clique sur "jeux video" on tombe sur une page qui affiche le contenu de toutes les pages contenues dans le dossier jeuxvideos. Chaque page etant dans un fichier different car chaque page est une description de site different (il s'agit d'un annuaire).

Voici le code que j'ai tenté d'élaborer à partir de quelques codes trouvés sur la toile mais ca me donne rien du tout :

Code : Tout sélectionner

<?php $dossier = $_GET['dossier']; $en = 'environnement/'; if($dossier == 'en') $dossier = $_GET['dossier']; $ouverture = opendir($dossier); while ($fichiers = readdir($ouverture)){ if (is_file($dossier.$fichiers) && $fichiers != "/") closedir($ouverture); $lien_fonction = str_replace(".html", ".php"); $aff_fonction = str_replace(".html", ""); include("$page'.php'"); ?>

Eléphant du PHP | 170 Messages

23 mars 2007, 17:50

Si tu n'est pas chez Free : glob()
Benjamin Franklin a dit :
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends

Mammouth du PHP | 686 Messages

23 mars 2007, 23:15

C'est bon j'ai enfin reussi à trouver le bon code, cela fera un jour que j'ai cherché sans relache ! J'espere pouvoir aider une personne qui cherchait le même script que moi en le postant.

Code : Tout sélectionner

<? $cat = $_GET['cat']; $hi = 'Histoire'; $en = 'Environnement'; $ar = 'Art'; $fe = 'Fédération'; $li = 'Litterature'; $sc = 'Sciences'; $so = 'Social'; $sp = 'Sports'; if($cat == 'hi'){ $rep = "histoire/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'en'){ $rep = "environnement/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'ar'){ $rep = "art/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'fe'){ $rep = "federation/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'li'){ $rep = "litterature/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'sc'){ $rep = "sciences/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'so'){ $rep = "social/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } if($cat == 'sp'){ $rep = "sports/"; $dir = opendir($rep); while ($fr = readdir($dir)) { if(is_file($rep.$fr)) { include ("$rep/$fr") ; } } } ?>

J'ai donc donné une variable a chaque dossier pour ne pas l'appeler directement à partir du lien pour eviter les piratages puis j'ai posé les condition : chaque variable appelle tel dossier.


En esperant que ca aidera quelqun

Mammouth du PHP | 686 Messages

23 mars 2007, 23:18

Juste une dernière question : Comment lui demander de ne faire la liste que des fichiers PHP et HTML s'il vous plait ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 mars 2007, 00:53

Attention lors de la création de post ne pas confondre "Nouveau" et "Répondre"... tu aurais pu supprimé le message de trop (je l'ai fait pour toi).

Pour la question regarde la fonction glob().

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 686 Messages

24 mars 2007, 01:09

Désolé :oops: je suis nouveau et j'ai un peu de mal .... ca ne se reproduira plus. Pourriez vous m'en dire plus sur cette fonction ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 mars 2007, 12:46

tu as le lien vers la doc pour plus d'explications. :wink:

Sinon elle liste tous les fichiers d'un dossier suivant le paramètre passé (qui peut être l'une des extensions)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute