Autor Zpráva
SojakP7410
Profil
Dobrý den, potřeboval bych pomoci s následující věcí.
Mám jednoduchý formulář, ve kterém do určitých polí zapisuji novinky. Datum a čas, titulek novinky, text atd.
Vše se mi ukládá do určitého txt souboru, ze kterého to poté zobrazuji na stránkách.
Problém je v tom, že novinky se zobrazují od nejstarší po nejnovější...tj. Nejnovější jsou nejníže. Potřeboval bych to však právě naopak, lze to nějak udělat?

Předem děkuji za reakce.
Tori
Profil
Můžete je do souboru zapisovat v opačném pořadí, anebo načíst soubor jako pole a to pak seřadit jak chcete.

Ale pokud byste těch novinek měl třeba 150 a chtěl vypsat jen některé z nich (podle data, autora, ...), bylo by jednodušší použít databázi.
SojakP7410
Profil
Těch příspěvků tam tolik nebude, právě proto postačí i verze bez DB. Mohu vás poprosit jen o názorný jednoduchý příklad, jak k tomu dospět?
Děkuji
Tori
Profil
Vycházím z předpokladu, že jednotlivé záznamy/novinky jsou odděleny zalomením řádku.

zápis v opačném pořadí:
$novyZaznam = '.......' . "\n";
$puvodni = file_get_contents('novinky.txt');
file_put_contents($novyZaznam .  $puvodni);
// ...cteni novinek puvodnim zpusobem...


seřazení pole:
// ...novinky se pridaji puvodnim zpusobem, tedy na konec souboru...
$novinky = file('novinky.txt');  // pokud oddelovac novinek neni \n, pouzijte file_get_contents() a explode()
$novinky = array_reverse($novinky);
Keeehi
Profil
Toto zapíše proměnnou $text_novinky na začátek souboru novinky.txt
$fp = fopen('novinky.txt', 'r+');
fwrite($fp,$text_novinky);
fclose($fp);
Alphard
Profil
[#5] Keeehi
Na začátku sice bude, ale myslím, že původní obsah se nahradí, nikoliv posune. Zkuste to někde, nejsem si jistý :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0