Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyświetlanie plików z katalogu..., tylko z wybranym rozszeżeniem :P
Lars
post
Post #1





Grupa: Zarejestrowani
Postów: 279
Pomógł: 15
Dołączył: 29.04.2005
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


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ć (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/happy.gif)

Ten post edytował Lars 5.07.2005, 18:36:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
crash
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
Devilish
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 25.04.2005

Ostrzeżenie: (0%)
-----


a ja tak troche na boku napisze, przy okazji kodu (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
crash
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
Nievinny
post
Post #5





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 27.01.2005
Skąd: Białystok

Ostrzeżenie: (0%)
-----


Zamiast rozbijać i sprawdzać tablicę, przeszukujesz w pętli za każdym razem dany ciąg. Moim zdaniem szybsze jest to co robisz raz.
Go to the top of the page
+Quote Post
Wave
post
Post #6





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

Ostrzeżenie: (0%)
-----


yyy....
  1. <?php
  2. glob ( '*.zip' );
  3. ?>
(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
radas
post
Post #7





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 18.01.2006
Skąd: Toruń

Ostrzeżenie: (0%)
-----


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.

Ten post edytował radas 18.01.2006, 12:37:24
Go to the top of the page
+Quote Post
bendi
post
Post #8





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował bendi 18.01.2006, 11:28:44
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 13:45