(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ńcuch a 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";
}
?>