Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zapis danych do pliku, ale na początku
zagi195
post
Post #1





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 1.02.2010

Ostrzeżenie: (0%)
-----


Witam

Zrobiłem dodawanie newsów zapisywanych w pliku .txt i mam taki problem, kolejne dodawane newsy są dodawane na koniec pliku txt i co za tym idzie nowsze są wyświetlane pod starszymi a ja chcę żeby było odwrotnie.

Jest możliwość żeby php dopisywało kolejne newsy na początku pliku a nie na końcu, a starsze przesuwało niżej?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kchrapa
post
Post #2





Grupa: Zarejestrowani
Postów: 17
Pomógł: 3
Dołączył: 2.02.2010

Ostrzeżenie: (0%)
-----


Witam !

1. Raczej nie ma koniecznosci zapisywac tego w odwrotnej kolejnosci - lepiej po prostu
zapisuj po kolei - a tylko zmien kolejnosc przy wyswietlaniu.
2. Jak sadze, zapisujesz kolejne wpisy w kolejnych liniach (po usunieciu enterow z wpisu) ?
3. Jesli tak robisz , to najsensowniej bedzie przy odczycie:

<?php

$a_wiersze=file("wpisy.txt"); //wczytaj w postaci tablicy, gdzie kluczami sa numerki 0,1,2 a wartosciami wiersze

$a_wiersze=array_reverse($a_wiersze); //odwroc kolejnosc

//wyswietl kolejne wiersze
foreach($a_wiersze as $v_wiersz){
echo "<p> $v_wiersz </p>" ;
}

?>

Jesli masz dane jednak rozdzielane np. '@@' (choc to wyzej jest sensowniejsze ;-) ):

<?php
$v_tresc=file_get_contents("dane.txt"); //wczytaj calosc


$a_wiersze=array_reverse(explode("@@",$v_tresc)); //rozbij na tablice (explode) po czym odwroc kolejnosc

//wyswietl
foreach($a_wiersze as $v_wiersz){
echo "<p>$v_wiersz </p>";
}
?>

A jesli mocno sie upierasz przy zapisie :

<?php
$a_wiersze=file("dane.txt"); //wczytaj plik jako tablice (zakladamy, ze ostatnie sa juz na poczatku)
$a_wiersze=array_reverse($a_wiersze);//odwroc kolejnosc ( teraz ostatnie na koniec)
$a_wiersze[]='To jest nowy wpis'; //dodaj wpis na koniec tablicy
$a_wiersze=array_reverse($a_wiersze); //ustaw ponownie - ostatnie na poczatek

$v_plik=fopen("dane.txt","w"); //otworz plik do nadpisania
fwrite($v_plik, implode("\n",$a_wiersze) ); //polacz elementy tablicy enterami/separatorem i wpisz do pliku
fclose($v_plik); //zamknij plik

?>

A tak ogolnie - to proponuje jakis bezplatny hosting z baza SQL (najpredzej mysql) i po problemie ;-)


Pozdrawiam serdecznie,
Kacper

========================================

Szkolenia PHP , Warszawa
http://www.AplikacjeInternetowe.pl

?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.10.2025 - 10:53