Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 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ć questionmark.gif happy.gif

Ten post edytował Lars 5.07.2005, 18:36:51


--------------------
(\.../) This is Bunny. Copy and paste bunny into
(O.o) your signature to help him gain world domination.
(> <) Zanim zapytasz | Też się przyda | Pomogłem ci? Kliknij "Pomógł"
Go to the top of the page
+Quote Post
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 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
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. ?>
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 10:52