Obsługa i funkcje plików PHP().

⚡ Inteligentne podsumowanie

Przetwarzanie plików w PHP wykorzystuje bogaty zestaw wbudowanych funkcji do tworzenia, odczytu, zapisu, kopiowania i usuwania plików na serwerze. Ten przewodnik obejmuje funkcje file_exists, fopen i ich tryby, fwrite, fclose, fgets, copy, unlink oraz file_get_contents wraz z praktycznymi przykładami.

  • 📄 Co przechowują pliki: Pliki przechowują ustawienia konfiguracyjne, dzienniki i proste dane, stanowiąc tanie rozwiązanie do trwałego przechowywania danych w porównaniu z bazą danych.
  • 🔍 Sprawdzanie plików: file_exists() sprawdza, czy plik istnieje przed jego odczytaniem lub utworzeniem, co pozwala uniknąć błędów.
  • 📂 Otwieranie plików: fopen() otwiera plik w trybie r, w lub a, który kontroluje odczyt, zapis i dołączanie.
  • ✍️. Pisanie i zamykanie: Funkcja fwrite() wysyła dane do uchwytu pliku, a fclose() zwalnia uchwyt po zakończeniu pracy.
  • ???? Odczytywanie plików: fgets() odczytuje jedną linię na raz, natomiast file_get_contents() zwraca cały plik jako pojedynczy ciąg znaków.
  • 🗂️. Kopiuj i usuń: copy() kopiuje plik do nowej ścieżki, a unlink() trwale usuwa plik z serwera.
  • 🤖 Asystent AI: Narzędzia AI potrafią generować kod do analizy plików i szybko rozwiązywać problemy z uprawnieniami lub błędy otwierania strumienia.

Przetwarzanie plików PHP

Co to jest plik?

Plik to po prostu zasób służący do przechowywania informacji na komputerze.

Pliki służą zazwyczaj do przechowywania informacji takich jak:

  • Ustawienia konfiguracyjne programu
  • Proste dane, takie jak nazwiska kontaktów i numery telefonów.
  • Obrazy, zdjęcia, fotografie i podobne media.

Obsługa formatów plików PHP

Funkcje plików PHP obsługują szeroką gamę formatów plików, w tym:

  • Plik.txt
  • Plik.log
  • File.custom_extension, czyli file.xyz
  • Plik.csv
  • Plik.gif, plik.jpg i podobne formaty obrazów

Pliki są przydatne w kilku sytuacjach:

  • Stanowią trwałe i ekonomiczne rozwiązanie do przechowywania prostych danych, w porównaniu z bazami danych, które wymagają innego oprogramowania i umiejętności do zarządzania systemami DBMS.
  • Chcesz przechowywać proste dane, takie jak logi serwera, w celu późniejszego pobrania i analizy.
  • Chcesz zapisać ustawienia programu, czyli program.ini

Funkcje plików PHP

PHP zapewnia wygodny sposób pracy z plikami dzięki bogatemu zestawowi wbudowanych funkcji.

Operasystemy tingowe, np Windows oraz macOS nie są rozróżniane wielkością liter, podczas gdy Linux or Unix Systemy operacyjne rozróżniają wielkość liter.

Dobrą praktyką jest przyjęcie konwencji nazewnictwa, np. używanie w nazwach plików tylko małych liter, co gwarantuje maksymalną kompatybilność między platformami.

Przyjrzyjmy się teraz niektórym najczęściej używanym funkcjom plików PHP.

PHP file_exists() Funkcja

Ta funkcja służy do określenia, czy plik istnieje, czy nie.

  • Przydaje się, gdy chcemy się dowiedzieć, czy plik istnieje, zanim zaczniemy go przetwarzać.
  • Możesz skorzystać z tej funkcji również podczas tworzenia nowego pliku i chcesz mieć pewność, że plik nie istnieje już na serwerze.

Funkcja file_exists ma następującą składnię.

<?php
file_exists($filename);
?>

TUTAJ,

  • „file_exists()” to funkcja PHP, która zwraca wartość true, jeśli plik istnieje, i false, jeśli nie istnieje.
  • „$filename” to ścieżka i nazwa pliku, który ma zostać sprawdzony

Poniższy kod używa funkcji file_exists, aby ustalić, czy plik my_settings.txt istnieje.

<?php
if (file_exists('my_settings.txt'))
{
echo 'file found!';
}
else
{
echo 'my_settings.txt does not exist';
}
?>

Zapisz powyższy kod w pliku o nazwie file_function.php. Zakładając, że zapisałeś plik w folderze phptuts w htdocs, otwórz URL http://localhost/phptuts/file_function.php w swojej przeglądarce. Otrzymasz następujące wyniki.

PHP file_exists() Funkcja

Funkcja fopen() PHP

Funkcja fopen służy do otwierania plików. Jej składnia jest następująca.

<?php
fopen($file_name,$mode,$use_include_path,$context);
?>

TUTAJ,

  • „fopen” to funkcja otwierania pliku PHP
  • „$nazwa_pliku” to nazwa pliku, który ma zostać otwarty
  • „$mode” to tryb, w którym plik powinien zostać otwarty. Poniższa tabela przedstawia tryby.
Moda OPIS
r • Przeczytaj plik od początku.
• Zwraca fałsz, jeśli plik nie istnieje.
• Tylko czytać
r+ • Przeczytaj plik od początku
• Zwraca fałsz, jeśli plik nie istnieje.
• Czytaj i pisz
w • Zapisz do pliku na początku
• Skróć plik do zerowej długości
• Jeśli plik nie istnieje, spróbuj go utworzyć.
• Tylko pisz
w+ • Zapis do pliku na początku, obcięcie pliku do zerowej długości
• Jeśli plik nie istnieje, spróbuj go utworzyć.
• Czytaj i pisz
a • Dołącz do pliku na końcu
• Jeśli plik nie istnieje, spróbuj go utworzyć.
• Tylko pisz
a+ • Dołącz do pliku na końcu
• Jeśli plik nie istnieje, spróbuj go utworzyć
• Czytaj i pisz
  • Parametr „$use_include_path” jest opcjonalny, domyślnie ustawiony na false. Jeśli ustawiony na true, funkcja przeszukuje również ścieżkę include.
  • Parametr „$context” jest opcjonalny i można go użyć do określenia obsługiwanego kontekstu.

Funkcja fwrite() PHP

Funkcja fwrite służy do zapisu do plików.

Ma następującą składnię.

<?php
fwrite($handle, $string, $length);
?>

TUTAJ,

  • „fwrite” to funkcja PHP służąca do zapisywania plików
  • „$handle” to zasób wskaźnika pliku
  • “$string” to dane, które mają zostać zapisane do pliku.
  • Parametr „$length” jest opcjonalny i można go użyć do określenia maksymalnej długości pliku.

PHP fclose() Funkcja

Funkcja fclose() służy do zamykania otwartego pliku w PHP.

Ma następującą składnię.

<?php
fclose($handle);
?>

TUTAJ,

  • „fclose” to Funkcja PHP do zamykania otwartego pliku
  • „$handle” to zasób wskaźnika pliku.

Przyjrzyjmy się teraz przykładowi, który tworzy plik my_settings.txt. Użyjemy funkcji fopen, fwrite i fclose.

Poniższy kod „create_my_settings_file.php” implementuje powyższy przykład.

Otwórz plik
<?php

$fh = fopen("my_settings.txt", 'w')

or

die("Failed to create file"); ?>
Zamykanie pliku
<?php

fclose($fh);

?>
Utwórz plik
<?php

$fh = fopen("my_settings.txt", 'w') or die("Failed to create file");

$text = <<<_END

localhost;root;pwd1234;my_database

_END;

fwrite($fh, $text) or die("Could not write to file");

fclose($fh);

echo "File 1 written successfully"; ?>

Testowanie kodu

Otwórz URL http://localhost/phptuts/create_my_settings.php w przeglądarce.

Otrzymasz następującą stronę.

Funkcja fclose w PHP

Uwaga: jeśli Twój dysk jest zapełniony lub nie masz uprawnień do zapisu plików, pojawi się komunikat o błędzie.

Wróć do URL http://localhost/phptuts/file_function.phpJakie uzyskałeś wyniki?

PHP fgets() Funkcja

Funkcja fgets służy do odczytywania plików PHP linia po linii. Ma następującą podstawową składnię.

<?php
fgets($handle);
?>

TUTAJ,

  • „fgets” to funkcja PHP służąca do odczytywania linii pliku
  • „$handle” to zasób wskaźnika pliku.

Przyjrzyjmy się teraz przykładowi odczytującemu plik my_settings.txt za pomocą funkcji fopen i fgets.

Poniższy kod read_my_settings.php implementuje powyższy przykład.

<?php
$fh = fopen("my_settings.txt", 'r') or die("File does not exist or you lack permission to open it");
$line = fgets($fh);
echo $line; fclose($fh);
?>

TUTAJ,

  • Funkcja „fopen” zwraca wskaźnik do pliku określonego w ścieżce pliku
  • Funkcja „die()” jest wywoływana w przypadku wystąpienia błędu. Wyświetla komunikat i kończy wykonywanie skryptu.

Funkcja kopiowania() PHP

Funkcja kopiowania PHP służy do kopiowania plików. Jej podstawowa składnia jest następująca.

<?php
copy($file,$copied_file);
?>

TUTAJ,

  • „$file” określa ścieżkę i nazwę pliku do skopiowania.
  • „$copied_file” określa ścieżkę i nazwę skopiowanego pliku

Poniższy kod ilustruje implementację.

<?php
copy('my_settings.txt', 'my_settings_backup.txt') or die("Could not copy file");
echo "File successfully copied to 2";
?>

Usuwanie pliku

Funkcja unlink służy do usuwania pliku. Poniższy kod ilustruje implementację.

<?php
if (!unlink('my_settings_backup.txt'))
{
echo "Could not delete file";
}
else
{
echo "File 1 successfully deleted";
}
?>

PHP file_get_contents() Funkcja

Do odczytania całej zawartości pliku służy funkcja file_get_contents.

Różnica pomiędzy file_get_contents i fgets polega na tym, że file_get_contents zwraca dane pliku jako ciąg znaków, natomiast fgets odczytuje plik wiersz po wierszu.

Poniższy kod ilustruje implementację.

<?php
echo "<pre>"; // Enables display of line feeds
echo file_get_contents("my_settings.txt");
echo "</pre>"; // Terminates pre tag
?>

Krótki przewodnik po funkcjach plików PHP

Poniższa tabela podsumowuje funkcje plików omówione w tym samouczku.

Funkcjonować OPIS
plik istnieje Służy do określenia, czy plik istnieje, czy nie
otwarty Służy do otwierania pliku. Zwraca wskaźnik do otwartego pliku
napisz Używany do zapisu do plików
fzamknij Służy do zamykania otwartego pliku
fgets Służy do odczytu pliku linia po linii
kopia Służy do kopiowania istniejącego pliku
odczepić Służy do usuwania istniejącego pliku
file_get_contents Służy do zwracania zawartości pliku w postaci ciągu znaków

FAQ

fgets odczytuje jedną linię na raz, fread odczytuje ustaloną liczbę bajtów z otwartego uchwytu, a file_get_contents odczytuje cały plik do ciągu w jednym wywołaniu bez potrzeby fopen lub fclose.

fwrite zapisuje do otwartego uchwytu pliku i wymaga wokół niego fopen i fclose. file_put_contents otwiera, zapisuje i zamyka plik za pomocą jednego wywołania, co czyni go krótszym wyborem w przypadku prostych zapisów.

Użyj is_writable('file.txt'), aby sprawdzić uprawnienia zapisu przed zapisem, oraz file_exists(), aby potwierdzić obecność pliku. W systemach Unix, chmod() może dostosować uprawnienia, jeśli serwer WWW jest właścicielem pliku.

Tak. Opisz format, taki jak CSV, JSON lub układ logu, a AI wygeneruje kod za pomocą fgetcsv, json_decode lub niestandardowej pętli, a także obsługę błędów w przypadku brakujących lub błędnie sformatowanych plików. Przetestuj na rzeczywistych danych.

Tak. Udostępnij ścieżkę i błąd, a AI może zidentyfikować nieprawidłową ścieżkę względną, brakujący plik lub problem z uprawnieniami, a następnie zasugerować użycie ścieżki bezwzględnej, utworzenie pliku lub dostosowanie uprawnień.

Podsumuj ten post następująco: