Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kolejność zapisywania i odczytywania :)
Forum PHP.pl > Forum > PHP
juniors
mam plik do ktorego dodaje za pomocą formularza kolejne nagłówki newsów, ale podczas dodawania, gdy używam komendy w,w+ oraz r+ to nie zapisuje mi na początku pliku tak jak powinno tylko kasuje całą zawartość. Czy wie ktoś moze dlaczego? Jeżeli nie to moze ktoś wie jak odwrócić odczytywanie pliku, tzn zeby czytal od ostatniej linijki do pierwszej? z góry thx smile.gif
adwol
Cytat
gdy używam komendy w,w+ oraz r+

Komendy? Chyba chodzi Ci o tryb otwarcia pliku przez fopen?
Cytat
to nie zapisuje mi na początku pliku tak jak powinno tylko kasuje całą zawartość.

A co dokładnie robisz?
Cytat
Czy wie ktoś moze dlaczego?

Bo otwarcie pliku w trybie w lub w+ kasuje zawartośc pliku. Możliwe jest też, że nadpisujesz sobie początek pliku nowym tekstem. Niestety nie powiem Ci co jest źle dopóki nie pokażesz kawałka kodu.
Cytat
Jeżeli nie to moze ktoś wie jak odwrócić odczytywanie pliku, tzn zeby czytal od ostatniej linijki do pierwszej?

Da się wprawdzie po odczytaniu kawałka tekstu cofać położenie wskaźnika pliku, ale z uwagi na pewnie niejednakową długość linii może to być nieefektywne. Prościej jest wczytać cały plik do pamięci jako tablicę i obrócić ją za pomocą array_reverse.
juniors
Kod
<?

$sciezka = "inc/";



$katalog = opendir($sciezka);

while ($plik = readdir($katalog)) {

if (($plik<>".")&&($plik<>"..")&&(!is_dir($sciezka.$plik))) {

$i++;

}

}

closedir($katalog);





$i++;

?>



<?

$data = date("Y-m-d H:i:s");

echo"$data";

?>

<?

$i--;

?>

<?

$plik = fopen("inc/$i.inc", "a");

fputs($plik, "<font class=tytul><b>$tytul</b><br></font><font class=data>dodane: $data</data><bR><br><font class=tresc>$tresc</font><br><Br><p aling=right><font class=dodal><a href=$poczta>$dodal</a>");

fclose($plik);



[b]$plik = fopen("inc/menu.inc", "r+"); [/b]

fputs($plik, "<a href=index.php?page=$i class=tytuls>$tytul</a> <font class=dodane>dodane: $data<br>n");

fclose($plik);

?>



<?

print ('$tytul');

?>

problem wlasnie jest w $plik = fopen("inc/menu.inc", "r+"); ...
Seth
Ustaw tryb zapisu na a, a potem pobieraj naglowki przez [manual:8be197c220]file[/manual:8be197c220] i tak jak pisal adwol odwroc tablice.


btw: Uzywaj znacznika [php]... ten najbardziej z lewej zaznaczony na czerwono ;P
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.