Reklama
Wizyt
Dzisiaj: 69Wszystkich: 653401

Operacje na plikach

Technikum » PAI » Język PHP » Pliki i katalogi » Operacje na plikach

 

 

 

 

 

 

 

Czy plik istnieje



Do ustalenia, czy plik lub katalog istnieje, służy funkcja file_exists() zapisywana w postaci:



Jako argument funkcji występuje nazwa pliku lub katalogu wraz ze ścieżką dostępu. Jeśli plik istnieje, funkcja zwraca wartość true, w przeciwnym razie zwraca wartość false.


Przykład




Funkcja is_file() sprawdza, czy podany jako jej argument ciąg jest plikiem. Ma postać:




Przykład



Funkcja zwraca wartość true, jeżeli argument funkcji jest plikiem.



Rozmiar pliku


Do określenia rozmiaru pliku służy funkcja filesize() w postaci:



Funkcja zwraca wartość typu integer, która określa wielkość pliku w bajtach. Znajomość rozmiaru pliku jest potrzebna na przykład wtedy, gdy plik ma zostać dołączony jako załącznik do poczty elektronicznej lub gdy rozmiar pliku musi zostać wyświetlony, zanim zacznie się jego pobieranie.


Tworzenie i usuwanie pliku


Do tworzenia pliku używana jest funkcja touch() zapisywana w postaci:

 

Funkcja tworzy pusty plik o podanej nazwie. Jeżeli istnieje już plik o podanej nazwie, nie ulegnie on zmianie. Zmieniona zostanie tylko data jego modyfikacji.



Do usuwania istniejącego pliku używana jest funkcja unlink() w postaci:

 

Funkcja zwraca wartość true, jeżeli plik został usunięty. W przeciwnym razie zwraca wartość false.

Otwieranie, zapisywanie i zamykanie pliku


Za pomocą funkcji fopen() można otwierać istniejące pliki. Funkcja ma postać:

 

Pierwszy argument funkcji określa ścieżkę do pliku, który ma zostać otwarty. Drugi określa tryb, w jakim plik zostanie otwarty Najczęściej stosowane tryby otwarcia to:

  • r — plik zostanie otwarty w trybie tylko do odczytu
  • w — plik zostanie otwarty w trybie tylko do zapisu
  • a — plik zostanie otwarty w trybie dopisywania



Przykład



Plik zostanie otwarty tylko do odczytu.

Funkcja fopen() zwraca wartość false, jeżeli plik nie może zostać otwarty.


Po odpowiednim ustawieniu atrybutu tryb otwarcia funkcja ta może zostać wykorzystana do zapisywania lub dopisywania nowych danych do pliku.


Przykład


Po wykonaniu podanego kodu znajdujące się w pliku dane zostaną usunięte, a nowe dane zostaną zapisane na początku pliku. Jeżeli podany plik nie istnieje, zostanie utworzony.


Przykład


Po wykonaniu podanego kodu nowe dane zostaną dopisane na końcu pliku.

 

 

Do zamykania pliku służy funkcja fclose() zapisywana w postaci:


Deskryptor to wartość zwrócona przez funkcję fopen(). Gdy zakończą się operacje wykonywane na otwartym pliku, powinien on zostać zamknięty. Jeżeli nie zostanie to zrobione w skrypcie, plik zostanie zaniknięty, gdy skrypt zakończy działanie.

Przykład




Kolejną funkcją stosowaną do zapisywania pliku jest funkcja fwrite() w postaci:


Pierwszy argument oznacza plik zwrócony za pomocą funkcji fopen(), drugi to ciąg znaków, które mają zostać zapisane. Funkcja zwraca wartość false, jeżeli zapisanie ciągu znaków do pliku się nie powiodło.


Przykład



W podanym przykładzie tekst umieszczony w zmiennej $tekst będzie dopisywany na końcu pliku dana.txt przy każdym uruchomieniu skryptu. Jeżeli plik nie istnieje, zostanie utworzony przy pierwszym wywołaniu.


Odczyt danych


Dane z pliku mogą być odczytywane na wiele sposobów. W języku PHP istnieje wiele funkcji, które umożliwiają odczyt pojedynczych znaków, całych wierszy lub wybranych fragmentów pliku.

Po otwarciu pliku można odczytywać pojedyncze wiersze za pomocą funkcji fgets(). Ma ona postać:


Pierwszy argument oznacza plik otwarty za pomocą funkcji fopen(), drugi określa maksymalną liczbę znaków, które można odczytać. Funkcja zwraca odczytany ciąg znaków.



Funkcja fgets() często jest stosowana razem z funkcją feof(), która służy do testowania osiągnięcia końca pliku. Zwraca ona wartość true, jeśli został osiągnięty koniec pliku. Funkcja feof() ma postać:


Przykład



W podanym przykładzie za pomocą funkcji fopen( ) jest otwierany tylko do odczytu plik dane.txt. Gdy otwarcie pliku się nie powiedzie (funkcja zwróci false), skrypt wyświetli komunikat i zakończy działanie. Gdy plik zostanie otwarty, w pętli będą odczytywane kolejne wiersze tekstu, aż do osiągnięcia końca pliku. Przy każdym wykonaniu pętli sprawdzana jest wartość zwracana przez funkcję feof(). Gdy zostanie osiągnięty koniec pliku (funkcja feof() zwróci wartość true), pętla zakończy działanie. Wewnątrz pętli za pomocą funkcji fgets() pobierane są kolejne wiersze i są one przypisywane do zmiennej $w. Następnie zmienna ta jest wyświetlana.




Do odczytywania pojedynczych znaków służy funkcja fgetc(), zapisana w postaci:


Funkcja zwraca ciąg zawierający jeden znak. Po wykonaniu funkcji wskaźnik pliku jest przesuwany o 1 znak do przodu. Gdy jest osiągnięty koniec pliku, funkcja zwraca wartość false.


Przykład



Skrypt przedstawiony w tym przykładzie jest bardzo podobny do skryptu z poprzedniego przykładu. Ponieważ funkcja fgetc() sama rozpoznaje koniec pliku, nie ma potrzeby stosowania funkcji feof(). Do testowania osiągnięcia końca pliku wykorzystany został operator !==.


Do odczytu bloków danych służy funkcja fread(), przyjmująca postać:


Pierwszy argument funkcji to plik otwarty przez funkcję fopen(), drugi określa liczbę znaków, które należy odczytać. Odczytany fragment pliku jest zwracany przez funkcję w postaci ciągu znaków.

Przykład



W podanym przykładzie dane są odczytywane w blokach 32-bajtowych i wysyłane do przeglądarki.




Kolejna funkcja służąca do odczytu danych z pliku to readfile(), zapisywana w postaci:



Wysyła ona zawartość pliku podanego jako argument do przeglądarki. Zwraca jako wartość liczbę odczytanych bajtów lub wartość false, gdy wykonanie operacji się nie powiodło.



Podobnie działa funkcja file_get_contents(), zapisana w postaci:



Zwraca ona odczytaną zawartość pliku podanego jako argument w postaci ciągu tekstowego lub wartość false, gdy wykonanie operacji się nie powiodło.


Funkcja file() służy do odczytywania zawartości plików tekstowych. Zapisywana jest w postaci:



Funkcja odczytuje całą zawartość pliku i zwraca tę zawartość w postaci tablicy. Każda komórka tablicy zawiera kolejny wiersz odczytanego tekstu. Argumentem jest nazwa odczytywanego pliku. Funkcja może posiadać drugi opcjonalny argument, który może przyjmować jedną z wartości:

  • FILE_USE_INCLUDE PATH — po nazwie opcji powinny zostać wymienione katalogi, które zostaną przeszukane, jeżeli wskazanego pliku nie będzie w bieżącym katalogu.
  • FILE_IGNORE_NEW_LINES — opcja ignoruje znaki końca linii.
  • FILE_ SKIP_EMPTY_LINES — opcja ignoruje puste linie.



 Zadania

 

  1. Napisz skrypt który będzie sprawdzał czy istnieje plik o podanej nazwie.
  2. Napisz skrypt który będzie wyświetlał rozmiar pliku o podanej nazwie.
  3. Napisz skrypt który będzie tworzył i usuwał plik o nazwie dane.txt.
  4. Napisz skrypt który w pliku o nazwie dane.txt będzie zapisywał w osobnych liniach nazwiska i imiona uczniów.
  5. Napisz skrypt który odczyta i wyświetli dane zapisane w pliku o nazwie dane.txt z poprzedniego zadania.
  6. Napisz skrypt który realizujący licznik odwiedzin strony WWW. (Skrypt ma odczytywać liczbę z pliku, zwiększać ją o 1, wypisać ją na ekranie i zapisać ponownie w pliku)



Reklama