![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Ohio Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam pewien, na pozór mały problem. Otórz rzecz dotyczy sortowania. Chodzi o to aby wyświetlać pliki (graficzne) w kolejności od najstarszego do najmłodszego. Pliki te są uploadowane przez kamery IP. Chciałbym mieć możliwość wyświetlania zdjęć z zadanego przedziału czasowego w w/w kolejności. bez tworzenia sortowania program zwraca pliki w następującej kolejności: CODE motion-2007-09-11-11-40-08.jpg motion-2007-09-11-11-42-18.jpg motion-2007-09-06-18-03-06.jpg motion-2007-09-08-10-09-13.jpg motion-2007-09-08-10-13-44.jpg motion-2007-09-08-10-19-02.jpg motion-2007-09-08-10-23-59.jpg motion-2007-09-08-10-28-25.jpg motion-2007-09-08-10-34-03.jpg motion-2007-09-08-10-41-05.jpg motion-2007-09-08-10-46-10.jpg motion-2007-09-08-10-51-27.jpg motion-2007-09-08-10-56-24.jpg motion-2007-09-08-11-00-57.jpg motion-2007-09-08-11-05-36.jpg motion-2007-09-08-11-10-04.jpg motion-2007-09-08-11-14-41.jpg motion-2007-09-08-11-19-10.jpg motion-2007-09-08-11-24-38.jpg motion-2007-09-08-11-29-11.jpg motion-2007-09-08-11-33-39.jpg motion-2007-09-08-11-38-36.jpg motion-2007-09-08-11-43-35.jpg motion-2007-09-08-11-48-45.jpg motion-2007-09-08-11-53-55.jpg motion-2007-09-08-11-58-49.jpg motion-2007-09-08-12-03-52.jpg motion-2007-09-08-12-09-59.jpg motion-2007-09-06-09-08-22.jpg motion-2007-09-06-15-29-47.jpg motion-2007-09-06-21-57-47.jpg motion-2007-09-06-22-31-11.jpg motion-2007-09-06-22-38-34.jpg motion-2007-09-06-22-46-43.jpg motion-2007-09-06-23-30-33.jpg motion-2007-09-06-23-39-28.jpg motion-2007-09-06-23-48-39.jpg motion-2007-09-07-00-01-08.jpg motion-2007-09-07-00-10-03.jpg motion-2007-09-06-08-54-05.jpg motion-2007-09-06-23-10-56.jpg motion-2007-09-06-23-23-10.jpg motion-2007-09-06-23-34-37.jpg motion-2007-09-06-23-42-25.jpg motion-2007-09-06-23-52-58.jpg motion-2007-09-07-00-03-49.jpg motion-2007-09-07-00-14-08.jpg motion-2007-09-05-22-51-52.jpg motion-2007-09-05-23-57-07.jpg motion-2007-09-06-00-01-12.jpg motion-2007-09-06-00-05-16.jpg motion-2007-09-06-00-09-06.jpg motion-2007-09-06-00-12-25.jpg motion-2007-09-06-00-16-29.jpg motion-2007-09-06-00-20-19.jpg ... ... ... (skopiowałem tylko część ze względu na oszczędność miejsca na serwerze ![]() Po zastosowaniu funkcji natsort() pliki wyswietlają sie mniej wiecej w takiej kolejności: CODE motion-2007-09-11-11-40-08.jpg motion-2007-09-11-11-42-18.jpg motion-2007-09-06-18-03-06.jpg motion-2007-09-08-10-09-13.jpg motion-2007-09-08-10-13-44.jpg motion-2007-09-08-11-24-38.jpg motion-2007-09-08-11-29-11.jpg motion-2007-09-08-11-33-39.jpg motion-2007-09-08-11-38-36.jpg motion-2007-09-08-11-43-35.jpg motion-2007-09-08-11-48-45.jpg motion-2007-09-08-11-53-55.jpg motion-2007-09-08-11-58-49.jpg motion-2007-09-08-12-03-52.jpg motion-2007-09-08-12-09-59.jpg motion-2007-09-06-09-08-22.jpg motion-2007-09-06-15-29-47.jpg motion-2007-09-06-21-57-47.jpg motion-2007-09-06-23-30-33.jpg motion-2007-09-06-23-39-28.jpg motion-2007-09-06-23-48-39.jpg motion-2007-09-07-00-01-08.jpg motion-2007-09-07-00-10-03.jpg motion-2007-09-06-08-54-05.jpg motion-2007-09-06-23-10-56.jpg motion-2007-09-06-23-23-10.jpg motion-2007-09-06-23-34-37.jpg motion-2007-09-06-23-42-25.jpg motion-2007-09-06-23-52-58.jpg motion-2007-09-07-00-03-49.jpg motion-2007-09-07-00-14-08.jpg motion-2007-09-05-22-51-52.jpg motion-2007-09-05-22-55-42.jpg motion-2007-09-05-22-59-47.jpg motion-2007-09-05-23-34-27.jpg motion-2007-09-05-23-38-31.jpg motion-2007-09-05-23-41-50.jpg motion-2007-09-05-23-45-54.jpg motion-2007-09-05-23-49-44.jpg motion-2007-09-05-23-53-49.jpg motion-2007-09-05-23-57-07.jpg motion-2007-09-06-00-01-12.jpg Nie wiem gdzie tu logika - natsort() to chyba sortowanie naturalne, nie rozumiem dlaczego pliki są posortowane w takiej kolejności. Nie poddałem się od razu i napisałem sam funkcję która posortuje pliki według daty ostatniej modyfikacji:
po zastosowaniu takiego sortowania kolejność wyświetlania plików jest identyczna jak w przypadku zastosowania sortowania natsort(). Pomyślałem żeby spróbować wykorzystać nazwę pliku (czyli np. motion-2007-09-08-10-09-13.jpg - bo takie nazwy zostają im nadawane przez kamery) i na podstawie daty w nich zawartej sortować te pliki. Stworzyłem skrypt który czyta najpierw rok z dwóch pierwszych plików, porównuje je - jeśli I jest starszy to przechodzi dalej; - jeśli II jest starszy to zamienia je i przechodzi dalej; - jeśli są równe to czyta miesiąc i robi dokładnie to samo co w przypadku roku... potem dzien, godzina, minuta i sekunda.
No i tu pojawił się problem... program sie zapętla.... możliwe że dzieje sie tak ze względu na dużą ilość plików (ok. 500) - petla jest wykonywana tak długo aż wszystkie pliki nie będą poukładane w odpowiedniej kolejności - przynajmniej takie były założenia. Podsumowując chciałbym prosić o pomoc. Nie wiem czy mam kombinować dalej z tym ostatnim pomyslem czy jest jakiś inny, być może łatwiejszy sposób, żeby posortować to jak należy. Za wszelką pomoc, jakieś wskazówki z góry dziekuje Pozdrawiam Tomek Kierat Ten post edytował tomekohio 11.09.2007, 12:34:44 |
|
|
-Wieviór- |
![]()
Post
#2
|
Goście ![]() |
Możesz wrzucić to do bazy danych i stworzyć w tabeli pole z datą, które będzie miało taki format:
YY-mm-dd-HH-ii-ss I według tego pola potem sortujesz. Nie jest to na pewno najlepsze rozwiązanie, ale możliwe, że tak po prostu będzie najszybciej i najoszczędniej ;] Ten post edytował Wieviór 11.09.2007, 12:41:13 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Ohio Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
1. Przy takich nazwach pliku (liczby o stałej długości, dopełniane zerami z lewej strony) wystarczy zwykłe sortowanie.
2. natsort" title="Zobacz w manualu PHP" target="_manual zachowuje relacje klucz => wartość, czyli jeśli posortujesz tablicę: Kod 0 => 'bbb' 1 => 'aaa' 2 => 'ccc' to otrzymasz: Kod 1 => 'aaa' 0 => 'bbb' 2 => 'ccc' Jeśli teraz tą posortowaną tablicę będziesz wyświetlał przy pomocy pętli for( $i=0; $i<count( $tablica ); $i++ ), to na ekranie zobaczysz: Kod bbb aaa ccc Zainteresuj się funkcją: array_values" title="Zobacz w manualu PHP" target="_manual -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 13.01.2004 Skąd: Ohio Ostrzeżenie: (0%) ![]() ![]() |
to jak zrobić żeby zapisać to w ten sposób?
Kod [0] => 'aaa'
[1] => 'bbb' [2] => 'ccc' Ten post edytował tomekohio 13.09.2007, 10:48:53 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
alternatywnie po tak posortowanej tablic można przejść
CODE foreach($tablica as $t) echo $t; |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 00:40 |