![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 25.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie. Mam problem z posortowanie pliku, z którego wczytywane byłyby komentarze, według dat od najświeższej.
wiem, że źródło nie wygląda ciekawie, tymniemniej będę wdzięczny za jakąkolwiek pomoc... |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 25.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie. Mam problem z posortowanie pliku, z którego wczytywane byłyby komentarze, według dat od najświeższej.
wiem, że źródło nie wygląda ciekawie, tymniemniej będę wdzięczny za jakąkolwiek pomoc... |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 25.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
A bez użycia bazy danych jakoś by się nie dało? Czy ten mój krsort jest w ogóle w dobrym miejscu, że nie działa?
|
|
|
![]()
Post
#5
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
a możesz pokazać jak masz zapisywane dane w tym pliku?
-------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 25.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
krsort sortuje po kluczu malejąco.
zrobiłem test. dane.txt Kod 09:03:30 11:21|pppp|asd 08:02:12 09:11|dsa|jkh 09:02:20 20:21|pasdppp|vz 09:03:29 22:01|ppqwerpp|qwexcv index.php
i sortuje. -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 16 Pomógł: 3 Dołączył: 14.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ten kod przetestowałem u siebi i działa . Znalazłem w Twoim kodzie zbędny nawias "}?>" na końcu.
<?php $id=fopen("ts.txt","r"); while(!feof($id)) { $linia=fgets($id); if($linia!="") { list($date, $log, $kom)=split('\|',$linia); echo"<table width='600' FRAME=below><tr><td width='15' align=right>W dniu:</td><td> $date</td></tr><tr><td align=right>użytkownik:</td> <td>$log</td></tr><tr><td align=right>napisał:</td><td>$kom</td></tr></table>"; } } $t=file("ts.txt"); krsort(&$t, SORT_NUMERIC); fclose($id); print('<pre>'); print_r($t); print('</pre>'); ?> Manual - krsort Ten post edytował robar12 29.03.2009, 15:25:41 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 25.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Hm, faktycznie sortuje. Ale gdybym chciał by wyświetlało mi owe informacje tak jak te informacje zawarte w echo
bo te informacje wyświetla mi nadal w odwrotnej kolejność... ------------- Eh, zrobiły się przez przypadek dwa tematy:/ |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 16 Pomógł: 3 Dołączył: 14.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
array_reverse ustawia tablicę w porządku odwrotnym .
Manual - array_reverse |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 25.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Faktycznie sortuje, ale czemu po splitowaniu każdej lini i wrzuceniu po kolei do tabeli by wyglądało to mniej więcej tak:
" W dniu: 2009:03:29 17:36 użytkownik: ers napisał: gi _______________________________ W dniu: 2009:03:29 17:36 użytkownik: ers napisał: gi " nie jest to posortowane? może wrzucę cały program....
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 16 Pomógł: 3 Dołączył: 14.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
<p>Program dopisuje do pliku podane przez formularz:<br>
komentarz, nick gościa oraz datę i godzinę wpisu<br> Następnie wypisuje na ekran wszystkie wpisy od najnowszego do najstarszego </p> <?php echo"<p><form method='post' action='index.php'><table border=1></p>"; echo"<p><tr><td width='250'>Login: </td> <td><input name='login' size='35' ></td></tr></p>"; echo"<p><tr><td>Twój komentarz: </td> <td><textarea name='tresc' cols='35' rows='5' ></textarea> </td></tr></p>"; echo"<p><tr><td> </td> <td><input type='submit' name='submit' value='Dodaj komentarz'> </td></tr></table></p></form>"; $login=$_POST['login']; $pom=$_POST['tresc']; if (!empty($login) || !empty($pom)){ $nazwa="plik.txt"; $id=fopen($nazwa,"a") or die ("problemy z otwarciem pliku"); $tresc=preg_replace("/[\n]+/","",$pom); $tresc=trim($tresc); $linia=date("Y:m:d G:i")."|".$login."|".$tresc."|\n"; fputs($id,$linia); fclose($id); //Koniec zapisu . Wczytujemy tablice. Tablice są świetne ![]() $t = file($nazwa); //Wyświetlenie danych pomocnych , czyli tablicy zawierającej //wszystkie wpisy , ale w kolejności od najstarszego do naj młodszego - //bo tak zostały wpisywane. echo '<pre>'; print_r($t) ; echo '</pre>'; //Wiec trzeba ją odwrócić (tablicę) $t = array_reverse($t); //Zapętlamy i wypiszemy wszystkie wpisy od najnowszego do najstarszego // count($t) razy. for($i=0;$i<count($t);$i++){ //Wyłuskanie poszczególnych składowych każdego komentarza $r = explode("|", $t[$i]); //Pomocne dane echo '<pre>'; print_r($r) ; echo '</pre>'; $date = $r[0];//data to pierwszy element po rozbiciu na częci między '|' $log = $r[1];//data to drugi element po rozbiciu na częci między '|' $kom = $r[2];//kom to trzeci element po rozbiciu na częci między '|' //No i na ekran echo"<table width='700'><tr><td width='15' align=right>W dniu:</td><td> $date</td></tr><tr><td align=right>użytkownik:</td> <td>$log</td></tr><tr><td align=right>napisał:</td><td>$kom</td></tr><tr><td></td><td><hr></td></tr></table>"; } /* $id=fopen($nazwa,"r"); while(!feof($id)) { $linia=fgets($id); if($linia!="") { list($date, $log, $kom)=split('[|\n]',$linia); $t=file($nazwa); krsort($t, SORT_NUMERIC); echo"<table width='700'><tr><td width='15' align=right>W dniu:</td><td> $date</td></tr><tr><td align=right>użytkownik:</td> <td>$log</td></tr><tr><td align=right>napisał:</td><td>$kom</td></tr><tr><td></td><td><hr></td></tr></table>"; } } fclose($id); */ } ?> Ten post edytował robar12 29.03.2009, 22:47:07 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 3 Dołączył: 31.01.2011 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
to ja odkopię temat, bo mam zapis w pliku bardzo podobny, bo:
...więc jak wiadomo nowy wpis ląduje na końcu pliku - i niech tak zostanie! Chciałbym jedynie żeby WYŚWIETLANE były wpisy odwrotnie (sama ich edycja lub dodanie niech fizycznie wpisuje "nowe - linijkę niżej"). Czyli po polsku ![]() WYŚWIETLANIE:
już mam - wystarczyło zrobić tak:
Ten post edytował shpaque 2.11.2013, 17:36:08 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 03:35 |