Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]wyświetlanie zawartości katalogu bez rozszerzenia...
Forum PHP.pl > Forum > Przedszkole
kleszcz12
Witam...czy da się to tak przerobić:
  1. <?php 
  2.  
  3.  
  4. $viewExt = '.php'; 
  5. $dirHandle = opendir('filmy/'); 
  6. while ($file = readdir($dirHandle)) { 
  7. if ($file != '.' && $file != '..' && eregi("($viewExt)$",$file) && !eregi("^index.",$file)) { 
  8. $stack[] = $file; 
  9. } 
  10. } 
  11. closedir($dirHandle); 
  12. sort($stack); 
  13. foreach($stack as $value) { 
  14. echo '<a href="'.$value.'">'.$value.'</a><br>'."\n"; 
  15. } 
  16. ?>


Aby pliki były wyświetlane bez rozszerzenia?
pyro
  1. <?php
  2. echo '<a href="'.$value.'">'.$value.'</a><br>'."\n";
  3. ?>


zamienic na:

  1. <?php
  2. echo '<a href="'.$value.'">'.substr($value,0,4).'</a><br>'."\n";
  3. ?>
kleszcz12
Ale to tylko ograniczenie długości wyświetlanej nazwy, a ja chciałbym wyświetlić całą nazwę bez końcówki .php
pyro
nie zrozum mnie zle ale slepy jestes haha.gif?
kleszcz12
smile.gif nie wiem...może jakiś błąd...bo autentycznie wyświetla mi tylko 4 litery nazwy...
pyro
  1. <?php
  2.  
  3. $file = 'index.php';
  4. echo strlen('.php'); // 4
  5. echo substr($file, 0 ,4); // index
  6.  
  7. ?>


Cytat(kleszcz12 @ 30.04.2008, 17:36:27 ) *
smile.gif nie wiem...może jakiś błąd...bo autentycznie wyświetla mi tylko 4 litery nazwy...


pewnie dlatego ze wpisujesz 0, -4 albo -4, u mnie dziala jak powinno
kleszcz12
teraz z koleji wyświetla "44444444"
pyro
no chyba jak se pokolorujesz i pomalujesz
erix
basename" title="Zobacz w manualu PHP" target="_manual...

edit: a jak już:
  1. <?php
  2. $file = 'index.php';
  3. echo strlen('.php'); // 4
  4. echo substr($file, 0 , strlen($file)-4); // index <<<<<<<
  5. ?>
Crozin
  1. <?php
  2. $fileName = pathinfo($value, PATHINFO_FILENAME);
  3. echo $fileName;
  4. ?>
kleszcz12
Cytat(erix @ 30.04.2008, 17:46:58 ) *
[manual\]basename\[/manual\]...

edit: a jak już:
  1. <?php
  2. $file = 'index.php';
  3. echo strlen('.php'); // 4
  4. echo substr($file, 0 , strlen($file)-4); // index <<<<<<<
  5. ?>

Mógłbyś konkretniej z tym basenamem...bo looknięcie na manuala mi drogi zabardzo nie oświetliło...
pyro
  1. <?php 
  2.  
  3.  
  4. $viewExt = '.php'; 
  5. $dirHandle = opendir('filmy/'); 
  6. while ($file = readdir($dirHandle)) { 
  7. if ($file != '.' && $file != '..' && eregi("($viewExt)$",$file) && !eregi("^index.",$file)) { 
  8. $stack[] = $file; 
  9. } 
  10. } 
  11. closedir($dirHandle); 
  12. sort($stack); 
  13. foreach($stack as $value) { 
  14. echo '<a href="'.$value.'">'.basename($value, ".php").'</a><br>'."\n"; 
  15. } 
  16. ?>
erix
Cytat
Mógłbyś konkretniej z tym basenamem...


  1. <?php
  2. echo '<a href="'.$value.'">'.basename($value).'</a><br>'."\n";
  3. ?>
kleszcz12
A dało by się to ograniczyć do wyświetlania np 10 ostatnio modyfikowanych plików?

pzdr.
erix
Jako klucz elementów w tablicy przy $dirhandle daj filemtime" title="Zobacz w manualu PHP" target="_manual. Potem posortuj tablicę wg kluczy i przy wyświetlaniu zrób pętlę z dziesięcioma krokami. Wszystko. ;]
kleszcz12
  1. <?php 
  2.  
  3.  
  4. $viewExt = '.php'; 
  5. $dirHandle = opendir('filmy/'); 
  6. while ($file = filemtime($dirHandle, 10)) { 
  7. if ($file != '.' && $file != '..' && eregi("($viewExt)$",$file) && !eregi("^index.",$file)) { 
  8. $stack[] = $file; 
  9. } 
  10. } 
  11. closedir($dirHandle); 
  12. sort($stack); 
  13. foreach($stack as $value) {
  14.  echo '<a href="'.$value.'">'.basename($value, ".php").'</a><br>'."\n"; 
  15. } 
  16. ?>

:Warning: Wrong parameter count for filemtime() in /home/KONTA/WWW/PREMIUM/j/janek1230/_public_html/film/mk.php on line 6

Warning: sort() expects parameter 1 to be array, null given in /home/KONTA/WWW/PREMIUM/j/janek1230/_public_html/film/mk.php on line 12

Warning: Invalid argument supplied for foreach() in /home/KONTA/WWW/PREMIUM/j/janek1230/_public_html/film/mk.php on line 13


PS. Raczej jestem zielony w php wstydnis.gif
erix
Nie tak. W deklaracji pętli nic nie ruszaj, a dodaj klucz przy $stack:

  1. <?php
  2. $stack[filemtime($file)] = $file;
  3. ?>


Tyle Ci na razie podpowiem. Do reszty sam spróbuj dojść.
kleszcz12
Już zupełnie nie wiem... worriedsmiley.gif
erix
Przeczytaj manual, o tablicach, to sie dowiesz, o co mi chodzi.
kleszcz12
nie wiem...jakoś tak:?
  1. <?php 
  2.  
  3. $arr['ilosc'] = 10;
  4. $viewExt = '.php'; 
  5. $dirHandle = opendir('filmy/'); 
  6. while ($file = readdir($dirHandle)) { 
  7. if ($file != '.' && $file != '..' && eregi("($viewExt)$",$file) && !eregi("^index.",$file)) { 
  8. $stack[] = $file; 
  9.  
  10. } 
  11. } 
  12. closedir($dirHandle); 
  13. sort($stack); 
  14. foreach($stack as $value) { 
  15. echo $arr['ilosc']'<a href="'.$value.'">'.basename($value, ".php").'</a><br>'."\n"; 
  16. } 
  17. ?>
erix
Po pobieżnym przejrzeniu, wg mnie powróciłeś do wcześniejszej wersji kodu.

Napisałem Ci już wiele wskazówek, masz jedną - chyba tą, od której powinienem zacząć - http://pl.php.net/manual/pl/language.types.array.php

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