Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Listowanie katalogu (między innymi)
Forum PHP.pl > Forum > Przedszkole
Setesh
Witam.
Mam problem bo nie wiem jak się do tego zabrać... Może małe wyjaśnienie :

Chcę napisać skrypt który wylistuje mi pliki w podanym katalogu a następnie z nich przeczyta informacje które wyświetli na stronie np :

pliki jakie będą listowane mają taką postać :
  1. <?php
  2. $title='Konwersja typu int (Integer) na String';
  3. $body = ''; // Tu kod w C++ jak się to robi + komentarze itp.
  4. $data_publikacji = '21.04.2007'; // Data kiedy opublikowano wskazówkę
  5. $autor_publikacji = ''; // Autor publikacji
  6. $autor_email = ''; // email do autora publikacji
  7. $autor_gg = ''; // nr gg autora publikacji
  8. //itp rzeczy
  9. ?>


i teraz tak... chciałbym aby skrypt podczas listowania katalogów z każdego pliku pobrał zmienna $title i wyświetlił (dodał do strony) w taki sposób :
<span style="font-weight: bold;"><a href="http://pl.php.net/
1. Konwersja typu int (Integer) na String [21.04.2007] // plik 1
2. Konwersja typu String na int (Integer) [22.04.2007] // plik 2
3. Konwersja plików BMP na JPG (JPEG) [23.04.2007] // plik 3
4. Konwersja plików BMP na ICO (Ikonka) [24.04.2007] // plik 4
" title="Zobacz w manualu PHP" target="_manual">
1. Konwersja typu int (Integer) na String [21.04.2007] // plik 1
2. Konwersja typu String na int (Integer) [22.04.2007] // plik 2
3. Konwersja plików BMP na JPG (JPEG) [23.04.2007] // plik 3
4. Konwersja plików BMP na ICO (Ikonka) [24.04.2007] // plik 4
</a></span>

I teraz tak... wszystko było by fajnie gdyby nie to, że... nie mam zielonego pojęcia jak to wyrazić w php sad.gif

Może ktoś mi wytłumaczyć jakich funkcji użyć lub napisać jakiś kawałek przykładowy kodu ?
Obecnie bawię się w listowanie katalogu ale od listowanie to coś mi mówi ze jeszcze daleko do końca sad.gif
mls
Zakładam, że includowane pliki to pliki PHP... Wobec tego:
  1. <?php
  2. foreach (glob('sciezka/*.php') as $id => $filename)
  3. {
  4. include($filename);
  5. echo(($id + 1).'. '.$title.' ['.$data_publikacji.'] // ...<br />');
  6. }
  7. ?>


Mam nadzieję, że trochę podpowiedziałem...
Setesh
Pomyślałem i... wykombinowałem tongue.gif

  1. <?
  2.  $dir = realpath(dirname(__FILE__));
  3.  $i = 0;
  4.  echo '<table><tbody><tr><td><b><u><center>Data dodania</center></u></b></td><td><b><u><center>Tytuł</center></u></b></td></tr>';
  5.  if($handle = opendir($dir))
  6.  {
  7. while(false !== ($file = readdir($handle)))
  8.  {
  9. if(($file != '.') && ($file != '..') && ($file != 'listuj.php') && ($file != 'listuj2.php'))
  10. {
  11.  include($file);
  12.  $i++;
  13.  echo "<tr><td>$data_publikacji</td><td><a href="$file" >$title</a></td></tr>";  
  14. } 
  15.  }
  16. closedir($handle);
  17. echo '</tbody></table>';
  18.  }
  19. ?>


mls - Twój sposób wygląda piękniej ale coś mi wywalał stronkę i resetował połączenie.

Wie ktoś jak to zrobić lepiej ? Coś mi mówi że jak będę includować np 50 plików php a każdy po np 8-20 KB to trochę to dłużej będzie działać sad.gif


PS : Jak zrobić aby po kliknięciu w tytuł pokazała się strona która będzie wygenerowana na podstawie danych pobranych z danego pliku php ?

Ok... doszedłem do takiego czegoś :

Potrzebne są pliki poprzednie (wylistowane ze zmiennymi) i plik listuj.php z taka zawartoscia :

  1. <?
  2. if(!empty($FileName)) 
  3. {
  4.  $GenerateFile = realpath(dirname(__FILE__)) + $_GET['FileName'];
  5.  if(file_exists($GenerateFile.'.php'))
  6.  {
  7. include($GenerateFile.'.php.');
  8. echo "Tytul : $title<br>Tresc : $body<br>Data : $data_publikacji<br>Autor : $autor_publikacji<br>Email : $autor_email<br>GG : $autor_gg";
  9.  }else{
  10.  echo 'taki plik nie istnieje'; 
  11. };  
  12. }else{
  13.  $dir = realpath(dirname(__FILE__));
  14.  $i = 0;
  15.  echo '<table><tbody><tr><td><b><u><center>Data dodania</center></u></b></td><td><b><u><center>Tytuł</center></u></b></td></tr>';
  16.  if($handle = opendir($dir))
  17.  {
  18. while(false !== ($file = readdir($handle)))
  19.  {
  20. if(($file != '.') && ($file != '..') && ($file != 'listuj.php'))
  21. {
  22.  include($file);
  23.  $i++;
  24.  echo "<tr><td>$data_publikacji</td><td><a href="listuj.php?FileName=$file">xxx $title</a></td></tr>";  
  25.  } 
  26.  }
  27. closedir($handle);
  28. echo '</tbody></table>';
  29.  }
  30.  };
  31. ?>


Pytanie... : Czy to aby szybkie i dość bezpieczne rozwiązanie ? sad.gif

Pytanie... 2 : Jak to poprawić aby w pasku adresu nie była pokazywana nazwa pliku ? np 1.php zamienić na 1 ? Jak to zrobić ?
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.