Kłopot z łamaniem linii przy zapisie

0

Witam

Korzystam ze skryptu, który sam napisałem i mam niewielki kłopot mianowicie mam już zapisany plik txt z kilkoma wartościami, odczytuje go za pomocą:

 
$i=0;
$uchwyt = @fopen ("plik.txt", "r");
if ($uchwyt) {
while (!feof($uchwyt)) {
$dane[$i] = fgets($uchwyt, 30);
echo $i . ">>" . $dane[$i] . "<BR>";
$i++;
}
fclose ($uchwyt);
}

natomiast zapis przeprowadzam przy wykorzystaniu kodu:

 
$fp = fopen ("plik.txt", "wb");
flock($fp, LOCK_EX);
for ($x=0; $x<$i-1; $x++)
 {
  fputs ($fp, $dane[$x]);
 }
fputs ($fp, "1234" . "\r\n" . "abc" . "\r\n");
flock($fp, LOCK_UN);
fclose ($fp);

Cały kłopot pojawia się w momencie jak próbuje ponownie coś do pliku zapisać, ponieważ z nieznanych powodów program obcina mi abc i w to miejsce zapisuje 1234 wygląda to tak jak by nie kończył linii i całość zapisywał w jednej tylko w notatniku wyświetlał kilka linii ze względu na łamanie \r\n. Próbowałem fopen z wt, wb, łamań linii \r \n itd i nic nie poskutkowało zawsze nadpisuje przedostatnią linię. Co można na to poradzić?

1

Skorzystaj z funkcji file_put_contents i będzie po problemie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1