Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Sortowanie zdjęć według daty modyfikacji
arekko
post 10.01.2015, 23:40:15
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 8.01.2015

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


Witam, mam taki kod który wyświetla miniatury z pliku i chciałbym zmienić go tak aby wyświetlał je według kolejności modyfikacji. Pomoże ktoś?

<div align="center" id="galeria";>
<ul><?php
$katalog = "obrazki";
$katalogminiaturki = "miniaturki";
$galeria = opendir( $katalog );
while ( $zdjecie = readdir( $galeria ) ){
$odczyt = pathinfo( $katalog.'/'.$zdjecie );
if ( $odczyt['extension'] == 'jpg' ){
echo '<li>
<a rel="mlbox[test]" href="'.$katalog.'/'.$zdjecie.'" rel="mlbox" >
<img src="'.$katalogminiaturki.'/'.$zdjecie.'" alt="ZdjÍcie: '.$zdjecie.'" /></a></li>';
}
}
closedir($galeria);
?>
</ul>
</div>
Go to the top of the page
+Quote Post
in5ane
post 11.01.2015, 00:46:39
Post #2





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


http://stackoverflow.com/questions/2667065...-by-date-in-php
http://stackoverflow.com/questions/1192323...y-date-modified


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
arekko
post 11.01.2015, 18:04:12
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 8.01.2015

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


A mógłbyś dokładnie powiedzieć jak to przeszktałcić?
Nie znam sie na php za bardzo a potrzebuje tego na szybko.
Go to the top of the page
+Quote Post
ctom
post 11.01.2015, 20:28:56
Post #4





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

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


Cytat(arekko @ 11.01.2015, 18:04:12 ) *
Nie znam sie na php za bardzo a potrzebuje tego na szybko.


@arekko urastasz do miana mojego bohatera :-) ... skoro umiesz się tak dobrze sprzedać to może ten model biznesowy będzie Ci bardziej na rękę niż programowanie


--------------------
Polecam MyDevil hosting idealny dla deweloperów
Go to the top of the page
+Quote Post
Kshyhoo
post 1.02.2015, 20:36:25
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Niekoniecznie trzeba zakładać 3 wątki.
http://forum.php.pl/index.php?showtopic=239099
http://forum.php.pl/index.php?showtopic=238539
http://forum.php.pl/index.php?showtopic=238317

Proszę użyć bb-code dla kodu.


--------------------
Go to the top of the page
+Quote Post
arekko
post 6.02.2015, 15:47:22
Post #6





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 8.01.2015

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


Zrobiłem coś takiego, zdjęcia się wyświetlają z datą modyfikacji i nazwą jednak nie są posortowane według kolejności. Wyskakuje mi też coś takiego:

Warning: filemtime() [function.filemtime]: stat failed for 2.png in /home/u181711956/public_html/test/test.php on line 33

A 33 linia to: $zdjecia[filemtime($zdjecie)] = $zdjecia;

A to kod:
  1. <?php
  2. $katalog = "obrazki";
  3. $katalogminiaturki = "miniaturki";
  4. $galeria = opendir( $katalog );
  5.  
  6. while ( false !== ( $zdjecie = readdir( $galeria ) ))
  7. {
  8. $odczyt = pathinfo( $katalog.'/'.$zdjecie );
  9.  
  10. if ($zdjecie != '.' && $zdjecie != '..')
  11. {
  12.  
  13. {
  14. $zdjecia[filemtime($zdjecie)] = $zdjecia;
  15. }
  16. }
  17.  
  18. krsort($zdjecia);
  19. foreach ($zdjecia as $filetime => $filename )
  20.  
  21. {
  22. echo date('F d Y, H:i:s', $filetime) . '-' . $filename . '
  23. <a rel="mlbox[test]" href="'.$katalog.'/'.$zdjecie.'" rel="mlbox" >
  24. <img src="'.$katalogminiaturki.'/'.$zdjecie.'" alt="ZdjÍcie: '.$zdjecie.'" /></a>';
  25.  
  26.  
  27. }
  28. }
  29.  
  30.  
  31. ?>


Gdzie tu jest problem?

Ten post edytował arekko 6.02.2015, 16:02:49
Go to the top of the page
+Quote Post
phpion
post 6.02.2015, 15:48:36
Post #7





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




Do filemtime przekaż całą ścieżkę do pliku, czyli $katalog.'/'.$zdjecie
Go to the top of the page
+Quote Post
trueblue
post 6.02.2015, 15:49:24
Post #8





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

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


W linii 33.
$zdjecia[filemtime($zdjecie)] = $zdjecia;
filemtime nie zgadnie w jakim katalogu siedzi zdjęcie jeśli nie znajdzie w bieżącym.

P.S. $zdjecia[...]=$zdjecia ?


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 6.02.2015, 15:53:23
Post #9





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Cytat(arekko @ 6.02.2015, 15:47:22 ) *
Gdzie tu jest problem?

Kilka razy prosiłem o stosowanie bb-code dla kodu. Następnym razem zablokuję wątek. Proszę uzupełnić zaległości.


--------------------
Go to the top of the page
+Quote Post
arekko
post 6.02.2015, 16:02:17
Post #10





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 8.01.2015

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


Okej, błędu już nie ma. Jednak zdjęcia dalej nie są posortowane według daty. Obok zdjęcia wyskakuje mi data "January 24 2015, 16:30:28-Array" i to obok każdego taka sama. Coś tu nie działa.
Kod wygląda teraz tak:
  1. <?php
  2. $katalog = "obrazki";
  3. $katalogminiaturki = "miniaturki";
  4. $galeria = opendir( $katalog );
  5.  
  6. while ( false !== ( $zdjecie = readdir( $galeria ) ))
  7. {
  8. $odczyt = pathinfo( $katalog.'/'.$zdjecie );
  9.  
  10. if ($zdjecie != '.' && $zdjecie != '..')
  11. {
  12.  
  13. {
  14. $zdjecia[filemtime($katalog)] = $zdjecia;
  15. }
  16. }
  17.  
  18. krsort($zdjecia);
  19. foreach ($zdjecia as $filetime => $filename )
  20.  
  21. {
  22. echo date('F d Y, H:i:s', $filetime) . '-' . $filename . '
  23. <a rel="mlbox[test]" href="'.$katalog.'/'.$zdjecie.'" rel="mlbox" >
  24. <img src="'.$katalogminiaturki.'/'.$zdjecie.'" alt="ZdjÍcie: '.$zdjecie.'" /></a>';
  25.  
  26.  
  27. }
  28. }
  29.  
  30.  
  31. ?>


Co jest nie tak?
Go to the top of the page
+Quote Post
nospor
post 6.02.2015, 20:43:31
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Juz raz ci to pokazywano...
$zdjecia[filemtime($katalog)] = $zdjecia;
staraj sie czytac co ci pisza....

filemtime ma sie odnosic do pliku a nie do katalogu.. Nie rozrozniasz tych dwoch pojec?
Do tablicy $zdjecia masz wsadzic $zdjecie a nie znowu tablice $zdjecia...


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
arekko
post 6.02.2015, 21:55:10
Post #12





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 8.01.2015

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


Zmodyfikowany kod:
  1. <?php
  2. $katalog = "obrazki";
  3. $katalogminiaturki = "miniaturki";
  4. $galeria = opendir( $katalog );
  5.  
  6. while ( false !== ( $zdjecie = readdir( $galeria ) ))
  7. {
  8. $odczyt = pathinfo( $katalog.'/'.$zdjecie );
  9.  
  10. if ($zdjecie != '.' && $zdjecie != '..')
  11. {
  12.  
  13. {
  14. $tablica[filemtime( $katalog.'/'.$zdjecie )] = $zdjecie;
  15. }
  16. }
  17.  
  18.  
  19. krsort($tablica);
  20. foreach ($tablica as $filetime => $filename )
  21.  
  22. {
  23. echo date('F d Y, H:i:s', $filetime) . '.' . $filename . '
  24. <a rel="mlbox[test]" href="'.$katalog.'/'.$zdjecie.'" rel="mlbox" >
  25. <img src="'.$katalogminiaturki.'/'.$zdjecie.'" alt="ZdjÍcie: '.$zdjecie.'" /></a>';
  26.  
  27.  
  28. }
  29. }
  30.  
  31. closedir($galeria);
  32.  
  33.  
  34. ?>


Wyświetla nazwę zdjęcia i czas modyfikacji, jednak zdjęcia wyświetlają się podwójnie lub nawet potrójnie, nie wiem czemu. Kod dalej nie sortuje zdjęć według daty.
Go to the top of the page
+Quote Post
nospor
post 7.02.2015, 10:30:44
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




foreach ($tablica as $filetime => $filename )
{

echo date('F d Y, H:i:s', $filetime) . '.' . $filename . '

<a rel="mlbox[test]" href="'.$katalog.'/'.$zdjecie.'" rel="mlbox" >

<img src="'.$katalogminiaturki.'/'.$zdjecie.'" alt="ZdjÍcie: '.$zdjecie.'" /></a>';
}
Przeciez w tej petli, zdjecie masz pod $filename a nie $zdjecie.... Nic dziwnego, ze ciagle ci sie wyswietla ostatnio zapamietane zdjecie pod $zdjecie


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
arekko
post 7.02.2015, 14:42:37
Post #14





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 8.01.2015

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


Wszystkie zdjęcia się wyświetlają z datą i nazwą i jest ok. Tylko że wyświetlają sie po dwa-trzy razy.

Z 6 zdjęć wychodzi takie coś:

February 05 2015, 18:44:19.0.png
February 07 2015, 13:43:13.DSC03760.JPG
February 05 2015, 18:44:19.0.png
February 07 2015, 13:43:13.DSC03760.JPG
February 05 2015, 18:44:19.0.png
February 05 2015, 18:09:36.1.png
February 07 2015, 13:43:13.DSC03760.JPG
February 05 2015, 18:44:19.0.png
February 05 2015, 18:42:47.DSC07122.JPG
February 05 2015, 18:09:36.1.png
February 07 2015, 13:43:13.DSC03760.JPG
February 05 2015, 18:44:19.0.png
February 05 2015, 18:42:47.DSC07122.JPG
February 05 2015, 18:09:36.1.png
February 07 2015, 13:43:13.DSC03760.JPG
February 05 2015, 19:03:32.krajobraz.JPG
February 05 2015, 18:44:19.0.png
February 05 2015, 18:42:47.DSC07122.JPG
February 05 2015, 18:09:36.1.png
February 07 2015, 13:43:13.DSC03760.JPG
February 05 2015, 19:03:32.krajobraz.JPG
February 05 2015, 18:44:19.0.png
February 05 2015, 18:42:47.DSC07122.JPG
February 05 2015, 18:09:36.2.png
February 07 2015, 13:43:13.DSC03760.JPG
February 05 2015, 19:03:32.krajobraz.JPG
February 05 2015, 18:44:19.0.png
February 05 2015, 18:42:47.DSC07122.JPG
February 05 2015, 18:09:36.2.png

Ten post edytował arekko 7.02.2015, 14:48:10
Go to the top of the page
+Quote Post
nospor
post 7.02.2015, 15:04:26
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




poniewasz sortowanie i wyswietlanie dales w WHILE.... A sortowanie i wyswietlanie ma byc ZA WHILE


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
arekko
post 7.02.2015, 15:27:02
Post #16





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 8.01.2015

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


Dzięki po zmianie zamknięcia pętli wszytko działa b. dobrze oprócz tego że niektóre zdjęcia nie są wyświetlane ..

z 9 zdjęć na serwerze wyświetliło się tylko 7:
January 24 2015, 21:17:23--10913166_909191255792618_1235845444_n.jpg
January 24 2015, 21:11:01--10884555_909193862459024_827172990_n.jpg
January 24 2015, 21:07:14--10866767_909193779125699_1868183354_n.jpg
January 24 2015, 21:05:42--IMG_5569.JPG
January 24 2015, 21:03:59--IMG_5532.JPG
January 21 2015, 17:07:43--portret.JPG
January 21 2015, 17:06:52--5.jpg

Ktoś ma jakiś pomysł na to?
Kod wygląda tak:
  1. <?php
  2. $katalog = "obrazki";
  3. $katalogminiaturki = "miniaturki";
  4. $galeria = opendir( $katalog );
  5.  
  6. while ( false !== ( $zdjecie = readdir( $galeria ) ))
  7. {
  8. $odczyt = pathinfo( $katalog.'/'.$zdjecie );
  9.  
  10. if ($zdjecie != '.' && $zdjecie != '..')
  11. {
  12.  
  13. {
  14. $tablica[filemtime( $katalog.'/'.$zdjecie )] = $zdjecie;
  15. }
  16. }
  17. }
  18. closedir($galeria);
  19.  
  20.  
  21. krsort($tablica);
  22. foreach ($tablica as $filetime => $filename )
  23.  
  24. {
  25. echo date('F d Y, H:i:s', $filetime) . '--' .$filename. '
  26. <a rel="mlbox[test]" href="'.$katalog.'/'.$filename.'" rel="mlbox" >
  27. <img src="'.$katalogminiaturki.'/'.$filename.'" alt="ZdjÍcie: '.$filename.'" /></a>';
  28.  
  29.  
  30. }
  31.  
  32. ?>


Ten post edytował arekko 7.02.2015, 22:33:08
Go to the top of the page
+Quote Post
nospor
post 8.02.2015, 16:37:17
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Pewnie czesc zdjec ma te sama date zapisu i sie nadpisuja ci w tablicy


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
arekko
post 8.02.2015, 17:25:18
Post #18





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 8.01.2015

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


Więc da się temu zaradzić jakoś? Mam już zdjęcia dodane na serwer.

Co z tym mogę zrobić?


Ten post edytował arekko 8.02.2015, 19:46:44
Go to the top of the page
+Quote Post
nospor
post 9.02.2015, 10:57:33
Post #19





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zamiast zdjecia nadpisywac:
$tablica[filemtime( $katalog.'/'.$zdjecie )] = $zdjecie;
masz je dopisywac o tak:

  1. $tablica[] = array('zdjecie' =>$zdjecie,'czas' => filemtime( $katalog.'/'.$zdjecie ));

A pozniej sortowac np. przy pomocy
http://php.net/manual/en/function.usort.php


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
arekko
post 10.02.2015, 19:05:56
Post #20





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 8.01.2015

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


Gdy zastosuje taki kod:
  1. <?php
  2. $katalog = "obrazki";
  3. $katalogminiaturki = "miniaturki";
  4. $galeria = opendir( $katalog );
  5.  
  6. while ( false !== ( $zdjecie = readdir( $galeria ) ))
  7. {
  8. $odczyt = pathinfo( $katalog.'/'.$zdjecie );
  9.  
  10. if ($zdjecie != '.' && $zdjecie != '..')
  11. {
  12.  
  13. {
  14. $tablica[] = array('zdjecie' =>$zdjecie,'czas' => filemtime( $katalog.'/'.$zdjecie ));
  15. }
  16. }
  17. }
  18.  
  19.  
  20.  
  21. krsort($tablica);
  22. foreach ($tablica as $filetime => $filename )
  23.  
  24. {
  25. echo date($filetime). '--' .$filename. '
  26. <li><a rel="mlbox[test]" href="'.$filename.'" rel="mlbox" >
  27. <img src="'.$filename.'" alt="ZdjÍcie: '.$zdjecie.'" /></a></li>';
  28. }
  29.  
  30. ?>


wychodzi cos takiego:
6--Array
5--Array
4--Array
3--Array
2--Array
1--Array
0--Array

Mógłbyś powiedzeić mi dokładnie jak mam to napisaćquestionmark.gif?
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 13.06.2025 - 00:33