Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Wyświetlanie zdjęć znajdujących się w katalogu.
papuncio
post 25.01.2008, 17:00:52
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 25.01.2008

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


Witam,

Zaczynam dopiero pisać w php i już mam kłopot. Staram sie napisać prosty skrypt wyświetlający zdjęcia znajdujące się w katalogu. Napisałam jak poniżej, ale za nic w świecie nie moge tego zmusić, żeby wyświetlał tylko pliki określonego typu, tak jak dir *.jpg. Problem pewnie banalny.

  1. <BR><?php <BR><BR>$katalog = dir('.');<BR><BR>while($plik = $katalog->read()){<BR><BR>echo "<img src=" .$plik. ">
  2.  
  3. ";<BR><BR>}<BR><BR>$katalog->close(); <BR><BR>?><BR><BR>


Ten post edytował Cysiaczek 26.01.2008, 08:43:58
Powód edycji: dodalem tag i bbcode (cysiaczek)
Go to the top of the page
+Quote Post
John
post 25.01.2008, 17:05:20
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 11
Dołączył: 1.08.2007
Skąd: Poland,Warsaw

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


Albo skorzystaj z funkcji glob" title="Zobacz w manualu PHP" target="_manual albo dodaj warunek sprawdzając rozszerzenie pliku


--------------------
Odpowiedź na wszystko : manual,appendix. Ulubiona książka : PHP 5 for Dummies.
Studia uh ? ;-).
Go to the top of the page
+Quote Post
potreb
post 25.01.2008, 17:12:52
Post #3





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


  1. <?php
  2. $folder = ".";
  3. $open = opendir($folder);
  4. while ($fotos = readdir($open))
  5. {
  6.  if (eregi("gif",$fotos) or eregi("jpg",$fotos))
  7. {
  8.  echo $fotos."<br>\n";
  9. }
  10. else if ($fotos=="." or $fotos=="..")
  11. {
  12.  
  13. }
  14. }
  15. ?>


Albo skorzystaj z tego przykładu


--------------------

Go to the top of the page
+Quote Post
bim2
post 25.01.2008, 17:21:29
Post #4





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


@papuncio
U ciebie wyglądądac to będzie tak:
  1. <?php
  2.  
  3. $katalog = dir('.');
  4.  
  5. while($plik = $katalog->read()){
  6. if (eregi("gif",$plik) or eregi("jpg",$plik))
  7. {
  8. echo "<img src=" .$plik. "><br><br>";
  9. }
  10. }
  11.  
  12. $katalog->close();
  13.  
  14. ?>

winksmiley.jpg

Ten post edytował bim2 25.01.2008, 17:21:59


--------------------
Go to the top of the page
+Quote Post
papuncio
post 25.01.2008, 17:35:30
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 25.01.2008

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


Dzięki, dokładnie to było mi potrzebne. Teraz poradzę sobie już z podpisami z pliku tekstowego.
Go to the top of the page
+Quote Post
phpion
post 25.01.2008, 17:40:02
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Kolega ~bim2 chyba nie do końca potrafi żonglować wyrażeniami regularnymi. To:
  1. <?php
  2. if (eregi("gif",$plik) or eregi("jpg",$plik))
  3. ?>

można z powodzeniem zapisać jako:
  1. <?php
  2. if (eregi("gif$|jpg$",$plik))
  3. ?>


Ten post edytował phpion 25.01.2008, 17:40:20
Go to the top of the page
+Quote Post
bim2
post 25.01.2008, 17:43:13
Post #7





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Kolega bim umie żąglować wyrażeniami, ale kopiował od kolegi ~potreb , żeby było analogicznie smile.gif i żeby kolegi ~papuncio nie wprowadzać w błąd. winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
potreb
post 25.01.2008, 17:45:10
Post #8





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Nie ładnie kopiować winksmiley.jpg aczkolwiek phpion dzięki, za twój sposób bo wiem jak u siebie przerobić kawałek kodu smile.gif Z drugiej strony bim2, twój sposób nie uwzględnia katalogów nadrzędnych tongue.gif

Ten post edytował potreb 25.01.2008, 17:46:28


--------------------

Go to the top of the page
+Quote Post
papuncio
post 25.01.2008, 18:11:47
Post #9





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 25.01.2008

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


Zrobiłem jeszcze inaczej:

<?php
foreach (glob("*.jpg") as $filename)

{
echo "<img src=" .$filename. "><br><br>";


if (file_exists(''.$filename.'.txt'))
include (''.$filename.'.txt');
else
include('blank.txt');


}
?>

Wyświetla mi zdjęcia i opisy dołączone w plikach txt.

Mam jednak jeszcze jedno pytanie, jak zmusić, żeby pliki były wyświetlane w innej kolejności? Teraz jest według nazwy, a jak zrobić odwrotnie lub według daty?
Go to the top of the page
+Quote Post
bim2
post 25.01.2008, 18:15:13
Post #10





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


sort" title="Zobacz w manualu PHP" target="_manual
Zainteresuj się tym smile.gif

@down nie znasz się i ty i ja

Powinno być
rsort" title="Zobacz w manualu PHP" target="_manual
smile.gif
Czyli w twoim wypadku:
  1. <?php
  2. $files = rsort(glob("*.jpg"));
  3. foreach ($files as $filename)
  4.  
  5. {
  6. echo "<img src=" .$filename. "><br><br>";
  7.  
  8.  
  9. if (file_exists(''.$filename.'.txt'))
  10. include (''.$filename.'.txt');
  11. else
  12. include('blank.txt');
  13.  
  14.  
  15. }
  16. ?>


Ten post edytował bim2 25.01.2008, 18:23:53


--------------------
Go to the top of the page
+Quote Post
bartg
post 25.01.2008, 18:15:53
Post #11





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

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


Może się nie znam, ale pliki zapisał bym do tablicy a potem użył funkcji ksort()


--------------------
Go to the top of the page
+Quote Post
papuncio
post 25.01.2008, 19:10:55
Post #12





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 25.01.2008

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


Dzięki pomogło, a co do tablicy to... może za kilkanaście minut. Narazie biorę manuala.

Jednak jeszcze mały kłopot, jak zejść katalog niżej:
Kod
<?php
foreach (glob("foto/*.jpg") as $filename)

{
echo "<img src="'foto/'.$filename. ">"<br><br>;

}
?>


to mi niestety nie działa.
A w innym skrypcie działałoz include ;(

Ten post edytował papuncio 26.01.2008, 01:16:44
Go to the top of the page
+Quote Post
webdice
post 25.01.2008, 19:23:25
Post #13


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Funkcja foreach" title="Zobacz w manualu PHP" target="_manual nie operuje na katalogach, zrób analogicznie do powyższego przykładu w miejsce kropki wstawiając nazwę katalogu.

Cytat(phpion @ 25.01.2008, 17:40:02 ) *
Kolega ~bim2 chyba nie do końca potrafi żonglować wyrażeniami regularnymi. To:
  1. <?php
  2. if (eregi("gif",$plik) or eregi("jpg",$plik))
  3. ?>

można z powodzeniem zapisać jako:
  1. <?php
  2. if (eregi("gif$|jpg$",$plik))
  3. ?>


To ja dorzyce swoje 3 grosze. Powinno być:

  1. <?php
  2. if (eregi(".gif$|.jpg$",$plik))
  3. ?>


Twój kod potraktuje zdjeciejpg jako plik graficzny.
Go to the top of the page
+Quote Post
papuncio
post 25.01.2008, 19:43:07
Post #14





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 25.01.2008

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


Chyba za dużo chcę na raz ;(

Kod
$katalog = dir('foto/'); // bieżący katalog
while($plik = $katalog->read()){
if (eregi("gif$|jpg$",$plik)){
echo "<img src=" foto/.$plik. "><br><br>";
if (file_exists(''.$plik.'.txt'))
include ('''foto/'.$plik.'.txt');
else
include('foto/blank.txt');
}
}
$katalog->close();
?>


Ten post edytował papuncio 25.01.2008, 20:02:08
Go to the top of the page
+Quote Post
mike
post 25.01.2008, 19:46:20
Post #15





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


~papuncio proszę poprawić wszystkie swoje posty.
Jeśli umieszczasz kod źródłowy na forum to ma on być objęty tagami bbCode.
Go to the top of the page
+Quote Post
papuncio
post 26.01.2008, 01:08:57
Post #16





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 25.01.2008

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


Niestety dalej nie mogę sobie poradzić ;(
Wyświetla mi znaczniki o braku plików (odnośnik jest bez wejścia do podkatalogu)
Próbowałem na różne sposoby dodać "foto/" ala za każdym razem wyskakują błędy.

Kod
<?php

$katalog = dir('foto/');
while($plik = $katalog->read()){
if (eregi("\.gif$|\.jpg$",$plik)){
echo "<img src=".$plik. "><br><br>";
}
}

$katalog->close();
?>


Ten post edytował papuncio 26.01.2008, 01:14:42
Go to the top of the page
+Quote Post
potreb
post 26.01.2008, 01:38:41
Post #17





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Sprawdź mój sposób, listujesz folder ale przy okazji katalogi nadrzedne ci wyswietli


--------------------

Go to the top of the page
+Quote Post
papuncio
post 26.01.2008, 12:00:16
Post #18





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 25.01.2008

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


I udało mi się.
Jeszcze raz dziękuję. To, co chciałem osiągnąć, czyli prosta galeria foto działa.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:17