PHP Otwieranie/Podgląd/Zamykanie Pliku

W tym rozdziale omówimy, jak otwierać, czytać i zamykać pliki na serwerze.

PHP Otwieranie Pliku - fopen()

Lepszym sposobem otwierania pliku jest funkcja fopen(). Funkcja ta oferuje więcej opcji niż funkcja readfile().

W kursie użyjemy pliku tekstowego "webdictionary.txt":

AJAX = Asynchroniczny JavaScript i XML
CSS = Arkusze Stylów Kaskadowych
HTML = Język Oznakowania Hyper Tekstu
PHP = PHP Hypertext Preprocessor
SQL = Język Zapytań Strukturyzowanych
SVG = Rysunki Wektorowe Skalowalne
XML = Rozszerzalny Język Markup

Pierwszy parametr funkcji fopen() zawiera nazwę pliku do otwarcia, drugi parametr określa tryb otwarcia pliku. Jeśli funkcja fopen() nie może otworzyć określonego pliku, poniższy przykład wygeneruje komunikat:

Przykład

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile, filesize("webdictionary.txt"));
fclose($myfile);
?>

Przykład uruchomienia

Wskazówka:Następnie nauczymy się funkcji fread() oraz fclose().

Plik zostanie otwarty w jednym z następujących trybów:

Tryb Opis
r Otwieranie pliku do odczytu. Wskazówka strumienia zaczyna się od początku pliku.
w Otwieranie pliku do zapisu. Usuwa zawartość pliku lub tworzy nowy plik, jeśli nie istnieje. Wskazówka strumienia zaczyna się od początku pliku.
a Otwieranie pliku do zapisu. Zostawia istniejące dane w pliku. Wskazówka strumienia zaczyna się od końca pliku. Tworzy nowy plik, jeśli nie istnieje.
x Tworzenie nowego pliku do zapisu. Zwraca FALSE i błąd, jeśli plik już istnieje.
r+ Otwieranie pliku do odczytu/zapisu. Wskazówka strumienia zaczyna się od początku pliku.
w+ Otwieranie pliku do odczytu/zapisu. Usuwa zawartość pliku lub tworzy nowy plik, jeśli nie istnieje. Wskazówka strumienia zaczyna się od początku pliku.
a+ Otwieranie pliku do odczytu/zapisu. Zostawia istniejące dane w pliku. Wskazówka strumienia zaczyna się od końca pliku. Tworzy nowy plik, jeśli nie istnieje.
x+ Tworzenie nowego pliku do odczytu/zapisu. Zwraca FALSE i błąd, jeśli plik już istnieje.

PHP odczytywanie pliku - fread()

Funkcja fread() odczytuje otwarty plik.

Pierwszy parametr funkcji fread() zawiera nazwę pliku do odczytania, drugi parametr określa maksymalną liczbę bajtów do odczytania.

Następujący kod PHP czyta plik "webdictionary.txt" do końca:

fread($myfile, filesize("webdictionary.txt"));

PHP zamknięcie pliku - fclose()

Funkcja fclose() jest używana do zamknięcia otwartego pliku.

Komentarz:Zamknięcie wszystkich plików po ich użyciu jest dobrym nawykiem programistycznym. Nie chcesz, aby otwarte pliki zajmowały zasoby serwera.

Funkcja fclose() wymaga nazwy pliku do zamknięcia (lub zmiennej zawierającej nazwę pliku):

<?php
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?>

PHP czytanie jednej linii pliku - fgets()

Funkcja fgets() jest używana do odczytywania jednej linii z pliku.

Następujący przykład wyświetla pierwszą linię pliku "webdictionary.txt":

Przykład

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?>

Przykład uruchomienia

Komentarz:Po wywołaniu funkcji fgets(), wskaźnik pliku przenosi się do następnego wiersza.

Sprawdzenie końca pliku PHP - feof()

Funkcja feof() sprawdza, czy doszliśmy do końca pliku (EOF).

Funkcja feof() jest bardzo przydatna do przechodzenia przez dane o nieznanej długości.

Poniższy przykład czyta plik "webdictionary.txt" wiersz po wierszu, aż do końca pliku:

Przykład

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Wyświetl pojedynczą linię do końca pliku
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>

Przykład uruchomienia

Odczyt pojedynczego znaku PHP - fgetc()

Funkcja fgetc() jest używana do odczytu pojedynczego znaku z pliku.

Poniższy przykład czyta plik "webdictionary.txt" znak po znaku, aż do końca pliku:

Przykład

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Wyświetl pojedynczy znak do końca pliku
while(!feof($myfile)) {
  echo fgetc($myfile);
}
fclose($myfile);
?>

Przykład uruchomienia

Komentarz:Po wywołaniu funkcji fgetc(), wskaźnik pliku przenosi się do następnego znaku.

Podręcznik referencyjny Filesystem PHP

Aby uzyskać pełny podręcznik referencyjny systemu plików PHP, odwiedź CodeW3C.com. Podręcznik referencyjny Filesystem PHP.