Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

[PHP] Odwrotne sortowanie wpisów w pliku

#1
[PHP] Odwrotne sortowanie wpisów w pliku
Program polega na dodawaniu komentarzy, które są zapisywane do pliku, a potem wyświetlane. Wszystko działa, tylko chciałbym je posortować odwrotnie, tak aby każdy nowy wpis był na początku pliku.
Kod PHP:
$komentarz=$_POST['komentarz'];
$nick=$_POST['nick'];
if (
$komentarz<>NULL&&$nick<>NULL)
    {
           
$komentarz=preg_replace('/[\n]+/',' ',$komentarz);
           
$linia=date("Y.m.d G:i:s")."|".$nick."|".$komentarz."|"."\n";
    
           
$fid=fopen("zad_5-3","a")
           
fputs($fid,$linia);
           
fclose($fid);
           
readfile("zad_5-3");
    } 
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#2
RE: [PHP] Odwrotne sortowanie wpisów w pliku
Lepszy jest zapis do bazy. Tam nie ma takich problemów - wystarczy dodać do zapytania "ORDER BY kolumna DESC" i będzie sortowało odwrotnie.
Jeśli będziesz oczekiwał większej ilości komentarzy to tym bardziej przerzuć się na bazę.

A co do problemu: tu masz rozwiązanie:
http://forum.nospor.pl/programowanie/php...-ft18.html
 System operacyjny: windows_xp_2003 Przeglądarka: opera
#3
RE: [PHP] Odwrotne sortowanie wpisów w pliku
Tylko, że to jest na zajęcia do szkoły i to sortowanie to musi być coś takiego (tylko, że to nie działa):
Kod PHP:
$tab=file("zad_5-3");
krsort($tab);
foreach (
$tab as $linia)
if (
$linia!="") list($data,$login,$kom)=split("[\|]",$linia); 
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#4
RE: [PHP] Odwrotne sortowanie wpisów w pliku
A jakim ciągiem znaków oddzielasz komentarze? Bo mógłbyś:
- Zapisywać komentarze oddzielając każdy specjalnym ciągiem znaków i użyć explode'a($ciag_oddzielajacy, $komentarze) a następnie array_reverse($array) i implode() (lub ręcznie wyświetlać zawartość tablicy for'em)
- użyć serializacji (serialize() i unserialize() podobnie jak w JS)

Pozdrawiam
winek11
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#5
RE: [PHP] Odwrotne sortowanie wpisów w pliku
Oddzielam przeniesieniem do następnej linii - \n (czy to jest dobrze?). A dałbyś radę poprawić to co napisałem w poprzednim poście by działało?
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#6
RE: [PHP] Odwrotne sortowanie wpisów w pliku
Na przykładzie takiego pliku:

Kod:
Winek: Cześć[TU \n]
mar_mn: Witam

Możesz zrobić tak:

Kod PHP:
$plik file_get_contents(nazwaPlikuZKomentarzami);
$tab explode ("\n"$plik);
array_reverse($tab);
for (
$i 0$i count ($tab); $i++)
{
 echo 
$tab[$i];


Chyba jakoś tak to by było (piszę z głowy, nie mam jak przetestować, ale powinno chodzić).
BTW. Ten post jest napisany godzine po twoim :e
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#7
RE: [PHP] Odwrotne sortowanie wpisów w pliku
Albo nie działa albo ja źle zrobiłem - tak i tak dopisuje na końcu i to po 2 razy to samo. Natomiast to z linka w 2 poście jeśli w miejsce "nowatresc" z tamtego kodu wstawię moją zmienną $linia to dopisuje raz na początku i raz na końcu.
PS: To sortowanie mam wstawić przed fclose czy po?
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki ([PHP] Odwrotne sortowanie wpisów w pliku)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [C++] Sortowanie bąbelkowe - problem z rozwiązaniem zadania bartek164 8 11281 01.12.2016, 11:26
Ostatni post: Szachista
  [Java] sortowanie/usunięcie wpisu z samemu zrobionej listy jednokierunkowej off-line 3 2571 28.08.2016, 11:32
Ostatni post: sh0cker
  [Pascal/Delphi] Sortowanie quicksort oraz scalanie. Chudy2000 3 11783 01.05.2016, 22:34
Ostatni post: Szachista

Skocz do: