Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] galeria + baza mysql
Forum PHP.pl > Forum > Przedszkole
spandor
Witam,

na forum znalazlem skrytp ktory pobiera liste plikow z serwera i sprawdza czy sa zgodne z zalozonymi roszczerzeniami. Chcialbym moj skrypt oprzec wlasnie na nim. Chodzi mi o to, ze mam w bazie mysql liste zdjec, ktorych id_zdjecie w bazie odpowaida ich nazwie na serwerze. Mam takie cos:

  1. <?php
  2. $result = mysql_query("SELECT * FROM zdjecia");
  3. $num_rows = mysql_num_rows($result);
  4. $rozszerzenia = Array("jpg", "png", "gif");
  5. $i = 0;
  6.  
  7. if (! empty($num_rows)) 
  8. {  
  9. echo '<table><tr>';
  10. while ($row = mysql_fetch_array($result)) 
  11. {
  12. echo '<td><img width="133" height="100" src="images/' . $row['id_zdjecie'] . '.'.$roz.'" /></td>';
  13. $i++;
  14.  if ($i % 4 == 0) echo '</tr><tr>';
  15. }
  16.  
  17. }
  18. ?>


No i chcialbym aby po tym numerze zdjecia sprawdzic na serwerze jakie rozdzerzenie ma dany plik ($roz)... i wlasnie nie wiem jak wkrecic tutaj gdzies to pozniej. Oczywiscie, rozwiazania inne od mojego toku myslenia rowniez mile widziane smile.gif :

  1. <?php
  2. $z = opendir('images');
  3. while ( $file = readdir( $z ) )
  4. {
  5.  $parts = pathinfo( 'images/' . $file );
  6.  $roz = $parts['extension'];
  7. }
  8. ?>


Jednym znaniem, jak poprostu odczytac rozszerzenie danego pliku smile.gif
cornholio666
  1. <?php
  2. $jpg = 1;
  3. $i = 0;
  4.  
  5. if($dh = @opendir($dir))
  6.  {
  7.  while(false !== ($file = readdir($dh)))
  8.  {
  9.  if($file != '.' && $file != '..')
  10.  {
  11.  $allfiles = explode('.', $file);
  12.  if($jpg)
  13.  { 
  14. if($allfiles[count($allfiles) -1] == 'jpg' || $allfiles[count($allfiles) -1] == 'JPG')
  15.  {
  16.  
  17.  $images[$i] = $file;
  18.  $i++;
  19.  }
  20.  }
  21.  }  
  22.  }
  23.  }
  24. ?>


Cytat
Jednym znaniem, jak poprostu odczytac rozszerzenie danego pliku

  1. <?php
  2. if($allfiles[count($allfiles) -1] == 'jpg' || $allfiles[count($allfiles) -1] == 'JPG')
  3. ?>
Cysiaczek
@cornholio666 Protestuje przeciwko
  1. <?php
  2. $allfiles = explode('.', $file);
  3. ?>

Owszem. Lwia część plików ma w nazwie jedną kropkę... ale nie musi mieć, zatem pobierajmy ciąg znaków po ostatniej kropce
  1. <?php
  2. $ext=strrchr($filename, '.'); // .jpg .png itd.
  3. ?>


Poza tym lepiej użyć iteratora - ładniej wygląda : )

Pozdrawiam.
spandor
rozumiem, ze w tym momencie mam tablice nazw i rozszerzen plikow

  1. <?php
  2. $jpg = 1;
  3. $i = 0;
  4.  
  5. if($dh = @opendir($dir))
  6.  {
  7.  while(false !== ($file = readdir($dh)))
  8.  {
  9.  if($file != '.' && $file != '..')
  10.  {
  11.  $allfiles = explode('.', $file);
  12.  if($jpg)
  13.  { 
  14. }}}}
  15. ?>


ale co robi ten fragment?
  1. <?php
  2. if($allfiles[count($allfiles) -1] == 'jpg' || $allfiles[count($allfiles) -1] == 'JPG')
  3.  {
  4.  
  5.  $images[$i] = $file;
  6.  $i++;
  7.  
  8.  }
  9. ?>
cornholio666
Cytat(Cysiaczek @ 11.05.2007, 08:41:21 ) *
@cornholio666 Protestuje przeciwko
  1. <?php
  2. $allfiles = explode('.', $file);
  3. ?>

Owszem. Lwia część plików ma w nazwie jedną kropkę... ale nie musi mieć, zatem pobierajmy ciąg znaków po ostatniej kropce


A ja protestuje przeciwko twojemu protestowi winksmiley.jpg

Ten fragment kodu:

  1. <?php
  2. if($allfiles[count($allfiles) -1] == 'jpg' || $allfiles[count($allfiles) -1] == 'JPG')
  3. ?>


właśnie sprawdza co jest po ostatniej kropce.
Oczywiście nie neguje twojego sposobu.
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.