login  Naam:   Wachtwoord: 
Registreer je!
 Forum

map uitlezen submappen en submappen van submappen (Opgelost)

Offline jonastymc - 11/08/2007 11:22 (laatste wijziging 11/08/2007 11:32)
Avatar van jonastymcNieuw lid Hallo ik heb het volgende nodig een script dat een map uileest en
de mappen eruit in een option zet.
Ik heb iets gemaakt maar er zitten nog fouten in weet iemand hoe ik het juist kan doen?

  1. <?php
  2. $hoofddir = "../fotoalbum/" ;
  3. // while($sub_dir = readdir($dir)) {
  4. $dir = opendir($hoofddir);
  5.  
  6. while (false !== ($sub_dir = readdir($dir))) {
  7.  
  8.  
  9. if($sub_dir != ".." && $sub_dir != "thumbs" && $sub_dir != "." && $sub_dir != "./" && $sub_dir != "/" && $sub_dir != "//" && !is_file($sub_dir) && is_dir($hoofddir.$sub_dir)){
  10. $files[]=$sub_dir;
  11. }
  12.  
  13. {
  14. natcasesort($files);
  15. foreach ($files as $sub_dirs)
  16.  
  17. $dir2 = opendir($hoofddir.$sub_dirs);
  18. while (false !== ($sub_dir2 = readdir($dir2))) {
  19. if($sub_dir2 != ".." && $sub_dir2 != "." && $sub_dir2 != "thumbs" && !is_file($sub_dir2) && is_dir($hoofddir.$sub_dirs.'/'.$sub_dir2)){
  20. $filez[] =$sub_dirs.'/'.$sub_dir2 ;
  21. }
  22.  
  23. }
  24. }
  25. }
  26.  
  27.  
  28.  
  29. { natcasesort($filez);
  30. foreach ($filez as $sub_dir)
  31.  
  32. echo "<option value='". $sub_dir ."'>". $sub_dir ."</option>";
  33. }
  34. closedir($dir);
  35. closedir($dir2);
  36. ?>


een voorbeeld van output zou moeten zijn

<option value="jonas ty mc">jonas ty mc</option>
<option value="jonas ty mc/jonas">jonas ty mc/jonas</option>

De output die ik krijg is de volgende
  1. <b>Warning</b>: natcasesort() [<a href='function.natcasesort'>function.natcasesort</a>]: The argument should be an array in <b>/var/www/jonascms_beta/cms/upload_fotoalbum.php</b> on line <b>59</b><br />
  2. <br />
  3. <b>Warning</b>: Invalid argument supplied for foreach() in <b>/var/www/jonascms_beta/cms/upload_fotoalbum.php</b> on line <b>60</b><br />
  4.  
  5. <br />
  6. <b>Warning</b>: readdir(): supplied argument is not a valid Directory resource in <b>/var/www/jonascms_beta/cms/upload_fotoalbum.php</b> on line <b>63</b><br />
  7. <option value='jonas ty mc/jonas'>jonas ty mc/jonas</option><option value='jonas ty mc/jonas'>jonas ty mc/jonas</option><option value='jonas ty mc/jonas'>jonas ty mc/jonas</option>



alvast iedereen bedankt 

6 antwoorden

Gesponsorde links
Offline Stijn - 11/08/2007 12:48 (laatste wijziging 11/08/2007 14:23)
Avatar van Stijn PHP expert Als je een map wilt uitlezen incl. zijn sub mappen moet je een recursieve functie maken (lees meer over recursie). Adhv mijn script heb ik volgende code voor jou geschreven (er staat een voorbeeld onderaan de code).

  1. <?php
  2. function dirRead( $dir , $return = null )
  3. {
  4.  
  5. if( is_dir($dir) === false ) {
  6. return false;
  7. }
  8.  
  9. //het is een map dus openen en de files tellen
  10. $rDir = opendir($dir);
  11. while( ($file = readdir($rDir)) !== false ) {
  12.  
  13. if( $file != '.' && $file != '..') {
  14.  
  15. if( is_dir($dir . $file) === true ) {
  16. $return .= '<option value="' . $dir . $file . '">' . $dir . $file . '</option>';
  17. dirRead( $dir . $file . '/' , &$return );
  18. }
  19.  
  20. }
  21.  
  22. }
  23.  
  24. closedir($rDir);
  25.  
  26. return $return;
  27.  
  28. }
  29.  
  30. ### VOORBEELD ###
  31. echo '<select name="mappen">';
  32. echo dirRead('./rudy/');
  33. echo '</select>';
  34. ?>
Offline jonastymc - 11/08/2007 14:05
Avatar van jonastymc Nieuw lid Dankjewel, mijn doel was eigenlijk om enkel de submappen te krijgen, de bestanden heb ik niet nodig, ik zal proberen dit zelf aan te passen en dan zal ik de aangepaste code hier posten.
zodat ze gecontroleerd wordt en dat andere ervan kunnen meegenieten.

Ik ga dit is mijn open source gnu gpl cms systeem gebruiken hoe wilt u credits krijgen?

mvg Jonas
Offline Stijn - 11/08/2007 14:23 (laatste wijziging 11/08/2007 14:58)
Avatar van Stijn PHP expert Heb de code wat bewerkt zodat hij enkel de mappen toont. Geen credits, is gewoon gratis hulp.

jonastymc schreef:
Ik ga dit is mijn open source gnu gpl cms systeem gebruiken
Als je systeem onder GNU/GPL valt is deze al opensource.
Offline jonastymc - 11/08/2007 14:30
Avatar van jonastymc Nieuw lid dank je wel
Offline Ultimatum - 11/08/2007 14:35
Avatar van Ultimatum PHP expert Bedankt Stijn, had ook zo'n soort script nodig 
Offline jonastymc - 15/08/2007 10:22
Avatar van jonastymc Nieuw lid Hallo ik krijg een kleine warning op mijn webserver, op localhost heb ik dat niet de warning die ik krijg is

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /www/******/j/o/n/a/s/t/y/_/jonasty/htdocs/bond-games/cms/upload_fotoalbum.php on line 43


Iemand een idee hoe dat komt voor de rest krijg ik normale uitvoer.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.209s