(PHP 4, PHP 5)
fwrite — Zapis pliku binarnie bezpieczny
fwrite() zapisuje treść łańcuch do strumienia pliku wskazanego przez uchwyt.
Wskaźnik do systemu plików typu resource jest zazwyczaj tworzony poprzez funkcję fopen().
Łańcuch znaków, który ma być zapisany.
Jeśli podany jest argument długość, zapisywanie zakończy się po zapisaniu długości bajtów lub gdy osiagnięty zostanie koniec łańcucha, cokolwiek zdarzy się pierwsze.
Zauważ, że jeśli argument długość zosta podany, to konfiguracja magic_quotes_runtime zostaje zignorowana i żadne slashe nie zostaną usunięte z łańcucha.
fwrite() zwraca liczbę zapisanych bajtów lub FALSE w przypadku błędu.
Informacja: W systemach, które rozróżniają pliki na binarne i tekstowe (np. Windows) plik musi zostać otworzony z 'b' włączonym do parametru tryb funkcji fopen().
Informacja: Jeśli uchwyt został utworzony za pomocą fopen() w trybie dopisywania, zapis do pliku jest niepodzielny (chyba, że rozmiar łańcucha przekracza blok systemu plików, na niektórych platformach, przy założeniu, że plik jest na lokalnym systemie plików). Jeśli tak, to nie ma potrzeby flock()owanie zasobu przed wywołaniem fwrite(); wszystkie dane zostaną zapisane bez przerywania.
Informacja: Jeśli, zapiszemy dwukrotnie do wskaźnika pliku, dane zostaną dołączone na koncu treści pliku, oznacza to, że poniższy przykład nie zadziała jak się tego spodziewamy.
<?php
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);
// plik 'data.txt' ma treść 123, a nie 23!
?>
Przykład #1 Prosty przykład fwrite()
<?php
$nazwapliku = 'test.txt';
$trochetresci = "Dodaj to do pliku\n";
// Najpierw przekonaj się czy plik istnieje i jest zapisywalny.
if (is_writable($nazwapliku)) {
// W naszym przykładzie otwieramy $nazwapliku w trybie dopisywania.
// Wskaźnik pliku jest ustawiony na końcu pliku gdzie znajdzie
// się zawartość $trochetresci po wykonaniu fwrite().
if (!$uchwyt = fopen($nazwapliku, 'a')) {
echo "Nie mogę otworzyć pliku ($nazwapliku)";
exit;
}
// Zapis $trochetresci do naszego otwartego pliku.
if (fwrite($uchwyt, $trochetresci) === FALSE) {
echo "Nie mogę zapisać do pliku ($nazwapliku)";
exit;
}
echo "Sukces, zapisano ($trochetresci) do pliku ($nazwapliku)";
fclose($uchwyt);
} else {
echo "Plik $nazwapliku nie jest zapisywalny";
}
?>