Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie plików z katalogu...
Forum PHP.pl > Forum > PHP
Lars
Mam skrypt:

  1. <?php
  2. $the_array=array();
  3. $handle=opendir($downloaddir);
  4. while(false !==($file=readdir($handle))) {
  5. if($file != '.' && $file !='..') {
  6. $the_array[]=$file;
  7. }
  8. }
  9. closedir($handle);
  10. sort($the_array);
  11. reset($the_array);
  12. while(list($key, $val)=each($the_array)) {
  13. echo '<a href=\"'.$downloaddir.'/'.$val.'\">'.$val.'</a>';
  14. }
  15. ?>


chce, aby wyświetlał tylko pliki z rozszeżeniem *.zip.
Jak to zrobić questionmark.gif happy.gif
crash
A poszukać na forum to nie łaska?!
  1. <?php
  2. $the_array = array();
  3. $handle = opendir( $downloaddir );
  4. while( false !== ( $file = readdir( $handle ) ) )
  5. {
  6.  if( strpos( $file, '.zip' ) !== false )
  7.  {
  8. $the_array[] = $file;
  9.  }
  10. }
  11.  
  12. closedir( $handle );
  13. sort( $the_array );
  14. reset( $the_array );
  15.  
  16. foreach( $the_array as $file )
  17. {
  18.  echo '<a href=\"'.$downloaddir.'/'.$file.'\">'.$file.'</a>';
  19. }
  20. ?>
Devilish
a ja tak troche na boku napisze, przy okazji kodu smile.gif

jak czytalem strpos szuka w danym ciagu wyrazu, litery przez nas podanej - nie wiedzac o tej funkcji zawsze uzywalem np.
$ex = explode('.', $text);
if ( in_array('test', $ex)
[..]

czy jest jakas roznica w dzialaniu ( chodzi mi glownie o szybkosc i bezpieczenstwo ) miedzy tymi dwoma sposobami ? Oczywiscie oprocz dlugosci kodu winksmiley.jpg
crash
Właściwie najszybciej to tam wstawić wyrażenie regularne:
  1. <?php
  2. if( preg_match( '/.zip$/i', $file ) !== false )
  3. ?>

Bo w tym moim poprzednim rozwiązaniu warunek zareaguje też na np. plik: coś.zipek.gif...
Nievinny
Zamiast rozbijać i sprawdzać tablicę, przeszukujesz w pętli za każdym razem dany ciąg. Moim zdaniem szybsze jest to co robisz raz.
Wave
yyy....
  1. <?php
  2. glob ( '*.zip' );
  3. ?>
winksmiley.jpg
radas
Witam

Mój problem jest następujący.

Czy jest możliwośćżeby przekształcić ten kod:

  1. <?php
  2. $the_array = array();
  3. $handle = opendir( $downloaddir );
  4. while( false !== ( $file = readdir( $handle ) ) )
  5. {
  6.    if( strpos( $file, '.zip' ) !== false )
  7.    {
  8.       $the_array[] = $file;
  9.    }
  10. }
  11.  
  12. closedir( $handle );
  13. sort( $the_array );
  14. reset( $the_array );
  15.  
  16. foreach( $the_array as $file )
  17. {
  18.    echo '<a href="'.$downloaddir.'/'.$file.'">'.$file.'</a>';
  19. }
  20. ?>


w taki sposób, aby wyświetlał mi tylko nazwy plików (bez rozszereń).

Moim zadaniem jest stworzenie menu dla stronki. Ma ono się tworzyć automatycznie pobierając tylko nazwy plików.

Ma to wyglądać mniek więcej w ten sposób:

  1. <?php
  2. <table>
  3. <tr>
  4.     <td>w tej części ma generować menu czyli cos 
  5.  na podobe kodu powyzej</td>
  6.  
  7.     <td>tuutaj ma wyświetlać zawartość pliku</td>
  8. </tr>
  9. </table>
  10. ?>



EDIT[/U]

Juz sobie poradzilem ale moze ktos zna lepsze ale ciągle jestem otwarty na wszelkie rozwiązania.
bendi
Już dostałeś, odpowiedź, ale widzę, że ją przeoczyłeś, więc dodam trochę od siebie:
  1. <?
  2.  
  3. $aFiles = glob( $downloaddir . '/*.zip' /* , GLOB_NOSORT */ );
  4.  
  5. foreach( $aFiles as $sFile ) {
  6.    $sFile2 = basename( $sFile );
  7.    echo '<a href="' . $sFile . '">' . str_replace( '_', '&nbsp;', urldecode( substr( $sFile2, 0, strrpos( $sFile2, '.' ) - 1 )  ) ). '</a>';
  8. }
  9.  
  10. ?>
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.