Jesteś tutaj: webmade.org >> porady >> php + mysql
autor: Mateusz Bogolubow, ostatnia modyfikacja: 2007-02-23
Operacje na plikach w PHP nie jest rzeczą skomplikowaną. Spróbuje w jasny sposób przedstawić zapis do pliku oraz jego odczyt.
<?php $nazwa_pliku = "plik.txt"; if (is_writeable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "a")) { if (fwrite($plik, "Linia pierwsza"." "."Linia druga") !== FALSE) echo "Zapis do pliku zakończył się powodzeniem..."; else echo "Zapis do pliku się nie powiódł..."; fclose($plik); } else echo "Nie mogę nawiązać połączenia z plikiem..."; } else echo "Do pliku nie można dopisać informacji lub on nie istnieje..." ?>
Funkcja is_writeable() sprawdza czy dany plik istnieje i czy jest do zapisu i jeśli obydwa warunki są spełnione zwraca TRUE w przeciwnym wypadku FALSE
fopen() pobiera uchwyt (powiedzmy, że nawiązuje połączenie) pliku. Jest dwu argumentową funkcją gdzie pierwszy argument to adres pliku, a drugi rodzaj nawiązanego połączenia. Istnieje kilka typów "połączeń".
fwrite() dopisuje dane podane w drugim argumencie funkcji do pliku o uchwycie podanym w pierwszym argumencie. Znak " "; jest znakiem końca linii.
fclose() zamyka połączenie z plikiem.
Pamiętajmy również o ustawieniu odpowiednich uprawnień dla pliku - chmod o wartości 666.
<?php $nazwa_pliku = "plik.txt"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "Odczyt danych z pliku nie powiódł się..."; else echo "odczytane dane: ".$dane."<br />"; fclose($plik); } else echo "Nie mogę nawiązać połączenia z plikiem..."; } else echo "Z pliku nie można odczytać informacji lub on nie istnieje..."; ?>
Funkcja is_readable() działa podobnie jak is_writeable() tyle ze sprawdza czy dany plik istnieje i czy jest on do odczytu.
Pozostała część kodu jest taka sama z drobna różnicą. Funkcja fread() odczytuje dane z pliku o uchwycie podanym w pierwszym argumencie. Ilość danych zależy od drugiego argumenty gdzie podajemy ilość znaków, które chcemy pobrać. Jeśli chcemy pobrać cała zawartość pliku korzystamy z funkcji filesize(), która zwraca wielkość pliku w bajtach. Jak zapewne wiesz jeden znak to jeden bajt.
Zapewne zastanawiasz się dlaczego tekst jest w jednej linii, jak mają być dwie?! Pamiętaj, że w kodzie HTML znak nowej linii jest ignorowany. Można to naprawić, ale o tym pisałem już w innej poradzie.
Istnieje jeszcze kilka innych możliwości odczytu. Możemy skorzystać z funkcji file_get_contents(), która odczytuje dane z pliku I zapisuje do zmiennej w formie ciągu znaków. Funkcja ta jest efektywniejsza od fread().
$dane = file_get_contents($nazwa_pliku);
Ciekawmy rozwiązaniem jest również korzystanie z funkcji file() tworzącej tablicę, której elementami są linie pliku
$dane = file($nazwa_pliku);
Mateusz Bogolubow
szukaj: zapis do pliku odczyt z pliku operacje na plikach PHP
Osoby czytające tę publikację przeglądały również:
© 2004-2008 copyright by webmade.org