| Autor | Zpráva | ||
|---|---|---|---|
| MilanJ Profil |
#1 · Zasláno: 26. 10. 2005, 12:35:57
Mám skript, který mi ukládá text do souboru, žádná databáze, jen čistý TXT soubor:
$fp = FOpen("./mujsoubor.txt", "a"); FPutS($fp, '<BR><SPAN class="datum">'.Date("d.m.Y - H:i").'</SPAN><BR>'); ... ... atd. Obsah souboru je sice v pořádku, vše funguje jak má, problém je ale ten, že se mi jednotlivé příspěvky (rozuměj obsah souboru) zobrazují vzestupně, nahoře na stránce ty nejstarší, a dole ty nejnovější, já bych to potřeboval přesně naopak...nahoře ty nejnovější a dole ty nejstarší. Když použiju při otevírání souboru $fp = FOpen("./mujsoubor.txt", "a"); jiný parametr, např. r nebo r+, obsah souboru se na začátku přemazává. Jak to ošetřit, vyřešit? Díky za pomoc. |
||
| Hugo Profil |
#2 · Zasláno: 26. 10. 2005, 13:28:10
Použij atribut a+, ten ti nastaví pointer na konec souboru.
|
||
| MilanJ Profil |
#3 · Zasláno: 26. 10. 2005, 15:22:45
Výsledej je stejný, v souboru TXT jsou uloženy údaje chronologicky naopak, tudíž se i načítají naopak, než bych potřeboval.
Chci, aby se data v TXT souboru zapisovala na začátek, aniž by se přepsal obsah. Parametr "r" ani "r+" nepomáhá, vždycky se mi přepíše začátek souboru. :-( |
||
| Hugo Profil |
#4 · Zasláno: 26. 10. 2005, 15:58:40
Sorry, špatně jsem přečetl dotaz. V tom případě použij toto
$fp = FOpen("./mujsoubor.txt", "a"); rewind($fp); Funkcí rewind() přesuneš pointer na začátek souboru. |
||
| hamstet Profil * |
#5 · Zasláno: 27. 10. 2005, 08:31:00
Laborování s pointerem nepomůže - když zapisuješ do souboru otevřeného s a (append), nový záznam se vždy přidá na konec. Souborový systém to jinak neumí, soubor není databáze.
Snad jediné řešení je načíst celý soubor do pole třeba funcí file(jmeno_soboru) a vypisovat od konce (začínat maximálním indexem a dekremetovat ho k nule). |
||
| igamenir Profil |
#6 · Zasláno: 27. 10. 2005, 09:22:05
Už se to tu řešilo: PHP » Zobrazení od zhora dolů(seřazení novinek)
|
||
|
Časová prodleva: 20 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0