Operacje na plikach i katalogach

Odczyt z pliku
\paragraph{} Jeżeli potrzebujemy odczytać zawartość całego pliku bez podziału na wiersze, możemy użyć funkcji file_get_contents(), która zwraca całą zawartość pliku jako ciąg znaków:

$file = file_get_contents('/sciezka/do/pliku.txt');

Aby przetworzyć plik linijka po linijce możemy użyć dwóch sposobów, funkcji file():

// zapisujemy zawartość pliku do tablicy
$file = file(/sciezka/do/pliku.txt);

// przetwarzamy tablicę
foreach($file as $line){
    echo $line . '<br />';
}

Lub funkcji fopen(), fgets() i fclose():

// otwieramy plik w trybie do odczytu
// i zapisujemy jego wskaźnik do zmiennej
$f = fopen('/sciezka/do/pliku.txt', 'r');

// funkcja fgets zwraca zawartość bieżącej linijki
// i przenosi wirtualny kursor do nowego wiersza
while($line = fgets($f))
{
    echo $line . '<br />';
}

// zamykamy plik
fclose($f);

Zapis do pliku
Jeśli potrzebujemy zapisać nowy plik lub nadpisać zawartość istniejącego, możemy użyć funkcji file_put_contents():

$file = file_put_contents('/sciezka/do/pliku.txt', 'Zawartość pliku');

Aby dopisać coś do istniejącego pliku, musimy go otworzyć w trybie do dopisu:

// otwieramy plik w trybie do dopisu
// i zapisujemy jego wskaźnik do zmiennej
$f = fopen('/sciezka/do/pliku.txt', 'a');

// dopisujemy zawartość
fwrite($f, "Nowa linijka\n"); // \n oznacza znak nowej linii

// zamykamy plik
fclose($f);

Odczyt zawartości katalogu
Odczyt zawartości katalogu jest podobny w swojej konstrukcji do odczytu pliku linijka po linijce. Katalog otwieramy za pomocą funkcji opendir(), która zwraca wskaźnik katalogu, do którego będziemy się odwoływać korzystając z funkcji readdir() i closedir().

// otwieramy katalog
// i zapisujemy jego wskaźnik do zmiennej
$d = opendir('/sciezka/do/katalogu');

while($file = readdir($d))
{
    if (($file != '.') AND ($file != '..'))
    {
        echo $file . '<br />';
    }
}

// zamykamy katalog
closedir($d);