login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Snippets > Directory uitlezen

Directory uitlezen

Auteur: twopeak - 07 november 2004 - 16:35 - Gekeurd door: Dennisvb - Hits: 14527 - Aantal punten: 3.50 (7 stemmen)



2 functies om een directory uit te lezen.
De eerste functie retourneert alles uit een dir (bestanden, directories, verborgen directories, ...)
De tweede functie retourneert bepaalde bestanden.

Het is vooral de bedoeling dat jullie van dit script kunnen leren. Er staat degelijke commentaar bij, en jullie zouden alles moeten kunnen begrijpen.

je moet het pad naar de directory nog specifiëren.

Code:
  1. <?
  2.  
  3. //VERSIE 1: HEEL DE DIR UITLEZEN
  4.  
  5. function uitlezen($dir){
  6. //$dir is de directory dat 'm moet uitlezen
  7. $uitlees=opendir($dir);
  8. //open de directory
  9. $bestanden=array();
  10. //maak vd var bestanden een array waarin de hele directory inhoud komt (ook verborgen bestanden)
  11. while(($dit_bestand = readdir($uitlees))!==false){
  12. //zolang hij een bestand uitleest uit $uitlees, zal hij doorgaan
  13. /*wanneer je een while loop uitvoert,
  14. zet php de pointer (waar hij ergens is) naar het volgende ding, dus hij heeft alle bestanden "opgeslagen" in uitlees
  15. en dan in de while loop gaat hij ze een voor een af, tot hij eens krijgt dat er een bestand niet bestaat
  16. */
  17. $bestanden[] = $dit_bestand;
  18. //voeg dit_bestand toe aan de array
  19. }
  20. closedir($uitlees);
  21. //voor de schoonheid, sluit de directory
  22. return $bestanden;
  23. //en stuurt het resultaat terug
  24. }
  25.  
  26.  
  27. // VERSIE 2: enkel welbepaalde bestandsextensies
  28.  
  29. function directory($dir,$filters=array()){
  30. //filters kunnen meerdere bestandext. zijn, ze moeten door kommas gescheiden worden!
  31. //laten we nemen $filters = "jpg,gif,png"; voor dit voorbeeld
  32.  
  33. $uitlees=opendir($dir);
  34. $bestanden=array();
  35. if (!$filters){
  36. //zie versie1
  37. while(($file = readdir($uitlees))!==false){
  38. $bestanden[] = $file;
  39. }
  40. } else {
  41. while (($dit_bestand = readdir($uitlees))!==false) {
  42. // herhaal volgende opdrachten voor elk bestand uit $uitlees
  43. $type = array_pop(explode(".",$dit_bestand)); //neem de letters na het laatste punt van de bestandsnaam
  44. if(in_array($type, $filters)) { //als de extensie voorkomt in de array dan ...
  45. $bestanden[] = $dit_bestand; //voeg het toe aan de resultaat array
  46. }
  47. }
  48. }
  49. //gedaan
  50. closedir($uitlees);
  51. return $bestanden;
  52. }
  53.  
  54.  
  55. echo "<pre>";
  56. print_r(uitlezen("/Users/Bertrand/sites/"));
  57. print_r(directory("/Users/Bertrand/sites", array("jpg","gif","png","php")));
  58. echo "</pre>";
  59.  
  60. ?>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (9)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.024s