PHP File() Håndtering og funktioner

⚡ Smart opsummering

Filbehandling i PHP bruger et omfattende sæt af indbyggede funktioner til at oprette, læse, skrive, kopiere og slette filer på serveren. Denne gennemgang dækker file_exists, fopen og dets tilstande, fwrite, fclose, fgets, copy, unlink og file_get_contents med praktiske eksempler.

  • 📄 Hvilke filer gemmer: Filer indeholder konfigurationsindstillinger, logfiler og simple data, hvilket giver en billig permanent lagringsmulighed sammenlignet med en database.
  • 🔍 Kontrol af filer: file_exists() bekræfter, om en fil er til stede, før du læser fra eller opretter den, hvilket undgår fejl.
  • 📂 Åbning af filer: fopen() åbner en fil i en tilstand som r, w eller a, der styrer læsning, skrivning og tilføjelse.
  • ✍️ Skrivning og afslutning: fwrite() sender data til filens handle, og fclose() frigiver handle'en, når arbejdet er færdigt.
  • ???? Læsning af filer: fgets() læser én linje ad gangen, mens file_get_contents() returnerer hele filen som en enkelt streng.
  • 🗂️ Kopiér og slet: copy() duplikerer en fil til en ny sti, og unlink() sletter permanent en fil fra serveren.
  • 🤖 AI Assist: AI-værktøjer kan generere filparsingkode og hurtigt løse fejl med tilladelser eller fejl, der ikke kunne åbne streams.

PHP-filbehandling

Hvad er en fil?

En fil er simpelthen en ressource til lagring af information på en computer.

Filer bruges normalt til at gemme information som:

  • Konfigurationsindstillinger for et program
  • Enkle data såsom kontaktnavne mod telefonnumre.
  • Billeder, fotos, fotos og lignende medier.

Understøttelse af PHP-filformater

PHP-filfunktioner understøtter en bred vifte af filformater, der inkluderer:

  • File.txt
  • Fil.log
  • File.custom_extension, dvs. file.xyz
  • File.csv
  • File.gif, file.jpg og lignende billedformater

Filer er nyttige i flere situationer:

  • De tilbyder en permanent og omkostningseffektiv datalagringsløsning til simple data sammenlignet med databaser, der kræver anden software og færdigheder til at administrere DBMS-systemer.
  • Du ønsker at gemme simple data såsom serverlogfiler til senere hentning og analyse.
  • Du vil gemme programindstillinger, f.eks. program.ini

PHP-filfunktioner

PHP tilbyder en bekvem måde at arbejde med filer på via sin omfattende samling af indbyggede funktioner.

Operatingsystemer som f.eks Windows og macOS der skelnes ikke mellem store og små bogstaver, mens Linux or Unix operativsystemer skelner mellem store og små bogstaver.

Det er god praksis at anvende en navngivningskonvention, f.eks. kun små bogstaver, til filnavngivning, der sikrer maksimal kompatibilitet på tværs af platforme.

Lad os nu se på nogle af de mest almindeligt anvendte PHP-filfunktioner.

PHP file_exists() Funktion

Denne funktion bruges til at bestemme, om en fil eksisterer eller ej.

  • Det er praktisk, når vi vil vide, om en fil findes, før vi behandler den.
  • Du kan også bruge denne funktion, når du opretter en ny fil, og du vil sikre dig, at filen ikke allerede findes på serveren.

Funktionen file_exists har følgende syntaks.

<?php
file_exists($filename);
?>

HER,

  • "file_exists()" er PHP-funktionen, der returnerer sand, hvis filen eksisterer, og falsk, hvis den ikke eksisterer.
  • "$filename" er stien og navnet på den fil, der skal kontrolleres

Koden nedenfor bruger funktionen file_exists til at afgøre, om filen my_settings.txt findes.

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

Gem ovenstående kode i en fil med navnet file_function.php. Hvis du har gemt filen i phptuts-mappen i htdocs, skal du åbne URL http://localhost/phptuts/file_function.php i din browser. Du vil få følgende resultater.

PHP file_exists() Funktion

PHP fopen() Funktion

Funktionen fopen bruges til at åbne filer. Den har følgende syntaks.

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

HER,

  • "fopen" er PHP åben fil-funktion
  • "$file_name" er navnet på den fil, der skal åbnes
  • "$mode" er den tilstand, som filen skal åbnes i. Tabellen nedenfor viser tilstandene.
tilstand Beskrivelse
r • Læs filen fra begyndelsen.
• Returnerer falsk, hvis filen ikke findes.
• Læs kun
r+ • Læs filen fra begyndelsen
• Returnerer falsk, hvis filen ikke findes.
• Læs og skriv
w • Skriv til fil i begyndelsen
• Afkort filen til nul længde
• Hvis filen ikke findes, så prøv at oprette den.
• Skriv kun
w+ • Skriv til fil i begyndelsen, afkort filen til nul længde
• Hvis filen ikke findes, så prøv at oprette den.
• Læs og skriv
a • Føj til fil til sidst
• Hvis filen ikke findes, så prøv at oprette den.
• Skriv kun
a+ • Føj til fil til sidst
• Hvis filen ikke findes, så prøv at oprette den
• Læs og skriv
  • "$use_include_path" er valgfri, standardværdien er falsk. Hvis den er indstillet til sand, søger funktionen også i include-stien.
  • "$context" er valgfri og kan bruges til at angive kontekstunderstøttelsen.

PHP fwrite() Funktion

Funktionen fwrite bruges til at skrive til filer.

Den har følgende syntaks.

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

HER,

  • "fwrite" er PHP-funktionen til at skrive til filer
  • "$handle" er filpegerressourcen
  • "$string" er de data, der skal skrives til filen.
  • "$length" er valgfri og kan bruges til at angive den maksimale fillængde.

PHP fclose() Funktion

Funktionen fclose() bruges til at lukke en fil i PHP, der allerede er åben.

Den har følgende syntaks.

<?php
fclose($handle);
?>

HER,

  • "fclose" er PHP funktion for at lukke en åben fil
  • "$handle" er filpegerressourcen.

Lad os nu se på et eksempel, der opretter my_settings.txt. Vi vil bruge funktionerne fopen, fwrite og fclose.

Koden nedenfor "create_my_settings_file.php" implementerer ovenstående eksempel.

Åbn filen
<?php

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

or

die("Failed to create file"); ?>
Lukning af en fil
<?php

fclose($fh);

?>
Opret fil
<?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"; ?>

Test af koden

Åbne URL http://localhost/phptuts/create_my_settings.php i din browser.

Du får den følgende side.

PHP fclose funktion

Bemærk: hvis din disk er fuld, eller du ikke har tilladelse til at skrive filer, får du en fejlmeddelelse.

Skift tilbage til URL http://localhost/phptuts/file_function.phpHvilke resultater får du?

PHP fgets() Funktion

Funktionen fgets bruges til at læse PHP-filer linje for linje. Den har følgende grundlæggende syntaks.

<?php
fgets($handle);
?>

HER,

  • "fgets" er PHP-funktionen til at læse fillinjer
  • "$handle" er filpegerressourcen.

Lad os nu se på et eksempel, der læser filen my_settings.txt ved hjælp af funktionerne fopen og fgets.

Koden nedenfor read_my_settings.php implementerer ovenstående eksempel.

<?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);
?>

HER,

  • "fopen"-funktionen returnerer markøren til den fil, der er angivet i filstien
  • Funktionen “die()” kaldes, hvis der opstår en fejl. Den viser en besked og afslutter udførelsen af ​​scriptet.

PHP copy() Funktion

PHP-kopifunktionen bruges til at kopiere filer. Den har følgende grundlæggende syntaks.

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

HER,

  • "$file" angiver filstien og navnet på den fil, der skal kopieres.
  • "$copied_file" angiver stien og navnet på den kopierede fil

Koden nedenfor illustrerer implementeringen.

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

Sletning af en fil

Funktionen unlink bruges til at slette en fil. Koden nedenfor illustrerer implementeringen.

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

PHP file_get_contents() Funktion

File_get_contents-funktionen bruges til at læse hele filens indhold.

Forskellen mellem file_get_contents og fgets er, at file_get_contents returnerer fildataene som en streng, mens fgets læser filen linje for linje.

Koden nedenfor illustrerer implementeringen.

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

Hurtig reference til PHP-filfunktioner

Tabellen nedenfor opsummerer de filfunktioner, der er dækket i denne vejledning.

Funktion Beskrivelse
fil_eksisterer Bruges til at bestemme, om en fil eksisterer eller ej
åben Bruges til at åbne en fil. Returnerer en markør til den åbnede fil
fwrite Bruges til at skrive til filer
fluk Bruges til at lukke en åben fil
fgets Bruges til at læse en fil linje for linje
kopiere Bruges til at kopiere en eksisterende fil
fjerne linket Bruges til at slette en eksisterende fil
file_get_contents Bruges til at returnere indholdet af en fil som en streng

Ofte Stillede Spørgsmål

fgets læser én linje pr. kald, fread læser et bestemt antal bytes fra et åbent handle, og file_get_contents læser hele filen til en streng i ét kald uden at skulle bruge fopen eller fclose.

fwrite skriver til en åben filhandle og kræver fopen og fclose omkring den. file_put_contents åbner, skriver og lukker filen i et enkelt kald, hvilket gør den til det kortere valg til simple skrivninger.

Brug is_writable('file.txt') til at teste skrivetilladelser før skrivning, og file_exists() til at bekræfte, at filen er til stede. På Unix-systemer kan chmod() justere tilladelser, hvis webserveren ejer filen.

Ja. Beskriv formatet, f.eks. CSV, JSON eller et loglayout, og AI kan producere kode ved hjælp af fgetcsv, json_decode eller et brugerdefineret loop, plus fejlhåndtering for manglende eller misdannede filer. Test med rigtige data.

Ja. Del stien og fejlen, og AI kan identificere en forkert relativ sti, en manglende fil eller et problem med tilladelser og derefter foreslå at bruge en absolut sti, oprette filen eller justere tilladelser.

Opsummer dette indlæg med: