Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: galeria grafik..
Forum PHP.pl > Forum > Przedszkole
Volume
mam taki skrypt wyswietlający grafikę z katalogów:

z.php
  1. <html>
  2. <head>
  3. <title>ppp</title>
  4. <body>
  5. <table border=\"0\"><tr>
  6. <?php
  7. $img_dir = &#092;"images\";
  8. $thumb_dir = &#092;"thumbnails\";
  9. $cols = 6;
  10. $width = 120;
  11. $counter = 1;
  12.  
  13. if(!($fe = opendir($thumb_dir))) exit;
  14. while (($file = readdir($fd)) !== false){
  15.   if($file != &#092;".\" && $file != \"..\"){
  16.          $name = substr($file, 0, strlen($file) - 5);
  17.          $name = $name.&#092;".jpg\";
  18.          echo(&#092;"rn<td align=\"center\" valign=\"middle\">rn\");
  19.          echo(&#092;"<a href=\"$img_dir$name\">\");
  20.          echo(&#092;"</a>\");
  21.          echo(&#092;"rn</td>rn\");
  22.          if(($counter >= $cols) && (($counter % $cols) == 0)){
  23.                 echo(&#092;"rn</tr><tr>rn\");
  24.          }
  25.          $counter++;
  26.   }
  27. }
  28. echo(&#092;"rn</tr>rn\");
  29. closedir($fd);
  30. ?>
  31. </table>
  32. </body>
  33. </html>


i na serwerze wyświetal mi takie coś:

Warning: opendir(thumbnails\): failed to open dir: No such file or directory in /home/krylamex/public_html/skrypt22/z.php on line 13
no i nie wiem co mam zrobić... Skrypt jest z ksiażki 101 praktycznych skryptów.
Indianin
Cytat
$thumb_dir = "thumbnails\\";
Brak katalogu
Volume
ale obydwa katalogi istnieją... i tu jest problem..
rogrog
nie. katalog images\ i thumbnails\ nie istnieją. Na pewno masz na myśli katalogi images i thumbnails bez \ na końcu
Volume
no tak... faktycznie mialem źle wpisane.
Ale pojawiają się kolejne błędy...

Warning: readdir(): supplied argument is not a valid Directory resource in /home/krylamex/public_html/skrypt25/z.php on line 14


Warning: closedir(): supplied argument is not a valid Directory resource in /home/krylamex/public_html/skrypt25/z.php on line 29

i dalej jestem pod znakiem "?"
mike
  1. <?php
  2.  
  3. // ...
  4. if(!($fe = opendir($thumb_dir))) exit;
  5. while (($file = readdir($fd)) !== false){
  6. // ...
  7.  
  8. ?>

Masz błąd w nazwach zmiennych:
najpierw jest $fe w linii 13
a potem $fd w linii 14
Volume
Nie rozumiem.. przeciez w lini 13 jest $fe a potem $fd...
mike
No i to właśnie jest błąd.
Idea tego fragmentu skryptu jest taka :
1. pobierasz identyfikator/uchwyt do folderu funkcją opendir() ( czyli inaczej otwierasz go );
2. przekazujesz tenże uchwyt do funkci readdir() po to aby ona wiedziała w którym folderze ma czytać.

Ogólnie po to pobierasz uchwyt do pliku aby potem z niego kożystać.
Volume
Mam cały czas ten układa:

  1. <?php
  2. if(!($fe = opendir($thumb_dir))) exit;
  3. while (($file = readdir($fd)) !== false){
  4. ?>

nie wiem co mam tam w końcu zmienic...
mike
Pomyśl troche.
Skoro opendir() zwraca wartość, którą ma dostać readdir(), to ma to być ta sama zmienna.
  1. <?php
  2. // ...
  3. if( !( $resDir = opendir( $thumb_dir ) ) ) exit;
  4. while( ( $strFile = readdir( $resDir ) ) !== false )
  5. {
  6. // ...
  7. ?>
Volume
Ale ja jestem tępy...
Wielkie wielkie dzięki za pomoc.

Nie wiem dlaczego w książce na podstawie której to pisałem wpisali katalogi tak: images\\ - jesli chciałem aby cos takiego zadziałało musiałem stworzyc po 2 katalogi 1 z tą kreseczką na końcu i drugi bez, inaczej nie szło odpalić poprawnie...
poza tym jest jesze błąd - przynajmniej u mnie nie działało - w linku pierwotnie było tak:
  1. <?php
  2. echo(&#092;"<a href=\"$img_dir$name\">\");
  3. ?>

a umnie działa tylko wten sposób:
  1. <?php
  2. echo(&#092;"<a href=\"$img_dir$file\">\");
  3. ?>
czyli ze zmienną $file a nie $name

W powyższym kodzie zapomniałem dopisać jeszcze echo z <img> jak ktos chce to tak wygląda w pełni-działający kod:

  1. <html>
  2. <head>
  3. <title>ppp</title>
  4. <body>
  5. <table border=\"0\"><tr>
  6. <?php
  7. $img_dir = &#092;"images/\";
  8. $thumb_dir = &#092;"thumbnails/\";
  9. $cols = 6;
  10. $width = 120;
  11. $counter = 1;
  12.  
  13. if(!($fd = opendir($thumb_dir))) exit;
  14. while (($file = readdir($fd)) !== false){
  15. if($file != &#092;".\" && $file != \"..\"){
  16.  $name = substr($file, 0, strlen($file) - 5);
  17.  $name = $name.&#092;".jpg\";
  18.  echo(&#092;"rn<td align=\"center\" valign=\"middle\">rn\");
  19.  echo(&#092;"<a href=\"$img_dir$file\">\");
  20.  echo(&#092;"<img src=\"$thumb_dir$file\">\");
  21.  echo(&#092;"</a>\");
  22.  echo(&#092;"rn</td>rn\");
  23.  if(($counter >= $cols) && (($counter % $cols) == 0)){
  24. echo(&#092;"rn</tr><tr>rn\");
  25.  }
  26.  $counter++;
  27. }
  28. }
  29. echo(&#092;"rn</tr>rn\");
  30. closedir($fd);
  31. ?>
  32. </table>
  33. </body>
  34. </html>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.