Zapis danych do pliku tekstowego

Zapis danych do pliku tekstowego jest to jedna z prostrzych, a zarazem jedna z ważniejszych rzeczy jaką powinien opanować początkujący adept php.

<?php

// zmienna $dane, która będzie zapisana
// może także pochodzić z formularza np. $dane = $_POST['dane'];
$dane = "tekst do wprowadzenia\n";

// przypisanie zmniennej $file nazwy pliku
$file = "baza.txt";

// uchwyt pliku, otwarcie do dopisania
$fp = fopen($file, "a");

// blokada pliku do zapisu
flock($fp, 2);

// zapisanie danych do pliku
fwrite($fp, $dane);

// odblokowanie pliku
flock($fp, 3);

// zamknięcie pliku
fclose($fp);
?>

Poniżej skryptu aby dane dopisywane były na początku pliku a nie na końcu:

<?php

// zmienna $dane, która będzie zapisana
// może także pochodzić z formularza np. $dane = $_POST['dane'];
$dane="$jakas_zmienna\n";

// przypisanie zmniennej $file nazwy pliku
$file="baza.txt";

// uchwyt pliku, otwarcie do odczytu i dopisania
$fp=fopen("$file", "r+");

// dodanie do zmiennej dane poprzedniej zawartości pliku
$dane=$dane.fread($fp, filesize($file));

// ustawienie kursora na początku pliku
rewind($fp);

// blokada pliku do zapisu
flock($fp, 2);

// zapisanie danych do pliku
fwrite($fp, $dane);

// odblokowanie pliku
flock($fp, 3);

// zamknięcie pliku
fclose($fp);
?>

Od wersji 4.3.2 obsługiwany jest jeszcze jeden tryb otwarcia pliku do zapisu x. Tryb ten daje nam możliwość dopisywania do pliku na jego poczatku. Czyli jeżeli wersja PHP na naszym serwerze jest większa lub równa 4.3.2 to możemy stosować poniższy kod zamiast powyższego.

<?php

// zmienna $dane, która będzie zapisana
// może także pochodzić z formularza np. $dane = $_POST['dane'];
$dane = "tekst do wprowadzenia\n";

// przypisanie zmniennej $file nazwy pliku
$file = "baza.txt";

// uchwyt pliku, otwarcie do dopisania na początku pliku
$fp = fopen($file, "x");

// blokada pliku do zapisu
flock($fp, 2);

// zapisanie danych do pliku
fwrite($fp, $dane);

// odblokowanie pliku
flock($fp, 3);

// zamknięcie pliku
fclose($fp);
?>

 

Projekt © 2009 - INFOPROG 70160 odwiedzin