PHP-fil()-håndtering og funksjoner

⚡ Smart oppsummering

Filbehandling i PHP bruker et rikt sett med innebygde funksjoner for å opprette, lese, skrive, kopiere og slette filer på serveren. Denne gjennomgangen dekker file_exists, fopen og dens moduser, fwrite, fclose, fgets, copy, unlink og file_get_contents med praktiske eksempler.

  • 📄 Hvilke filer lagrer: Filer inneholder konfigurasjonsinnstillinger, logger og enkle data, noe som gir et billig permanent lagringsalternativ sammenlignet med en database.
  • 🔍 Kontrollerer filer: file_exists() bekrefter om en fil finnes før du leser fra eller oppretter den, og unngår dermed feil.
  • 📂 Åpne filer: fopen() åpner en fil i en modus som r, w eller a, som styrer lesing, skriving og tilføying.
  • ✍️ Skriving og avslutning: fwrite() sender data til filhåndtaket, og fclose() frigir håndtaket når arbeidet er ferdig.
  • ???? Leser filer: fgets() leser én linje om gangen, mens file_get_contents() returnerer hele filen som én streng.
  • 🗂️ Kopier og slett: copy() dupliserer en fil til en ny sti, og unlink() sletter en fil permanent fra serveren.
  • 🤖 AI Assist: AI-verktøy kan generere filparsekode og løse feil med tillatelser eller feil som ikke kunne åpne strømmer raskt.

PHP-filbehandling

Hva er en fil?

En fil er ganske enkelt en ressurs for å lagre informasjon på en datamaskin.

Filer brukes vanligvis til å lagre informasjon som:

  • Konfigurasjonsinnstillinger for et program
  • Enkle data som kontaktnavn mot telefonnumre.
  • Bilder, bilder, fotoer og lignende medier.

Støtte for PHP-filformater

PHP-filfunksjoner støtter et bredt spekter av filformater som inkluderer:

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

Filer er nyttige i flere situasjoner:

  • De tilbyr en permanent og kostnadseffektiv datalagringsløsning for enkle data, sammenlignet med databaser som krever annen programvare og ferdigheter for å administrere DBMS-systemer.
  • Du ønsker å lagre enkle data, som serverlogger, for senere henting og analyse.
  • Du vil lagre programinnstillinger, f.eks. program.ini

PHP-filfunksjoner

PHP tilbyr en praktisk måte å jobbe med filer på via sin rike samling av innebygde funksjoner.

Operatingsystemer som f.eks Windows og macOS skiller ikke mellom store og små bokstaver, mens Linux or Unix operativsystemer skiller mellom store og små bokstaver.

Å bruke en navnekonvensjon med kun små bokstaver for filnavn er god praksis som sikrer maksimal kompatibilitet på tvers av plattformer.

La oss nå se på noen av de mest brukte PHP-filfunksjonene.

PHP file_exists() funksjon

Denne funksjonen brukes til å bestemme om en fil eksisterer eller ikke.

  • Det er nyttig når vi vil vite om en fil finnes før vi behandler den.
  • Du kan også bruke denne funksjonen når du oppretter en ny fil og du vil forsikre deg om at filen ikke allerede eksisterer på serveren.

Funksjonen file_exists har følgende syntaks.

<?php
file_exists($filename);
?>

HER,

  • "file_exists()" er PHP-funksjonen som returnerer true hvis filen eksisterer og falsk hvis den ikke eksisterer.
  • «$filnavn» er banen og navnet på filen som skal sjekkes

Koden nedenfor bruker file_exists-funksjonen til å avgjøre om filen my_settings.txt finnes.

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

Lagre koden ovenfor i en fil med navnet file_function.php. Forutsatt at du lagret filen i phptuts-mappen i htdocs, åpner du URL http://localhost/phptuts/file_function.php i nettleseren din. Du vil få følgende resultater.

PHP file_exists() funksjon

PHP fopen() funksjon

Fopen-funksjonen brukes til å åpne filer. Den har følgende syntaks.

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

HER,

  • "fopen" er PHP-funksjonen for åpen fil
  • "$filnavn" er navnet på filen som skal åpnes
  • «$mode» er modusen filen skal åpnes i. Tabellen nedenfor viser modusene.
Mote Tekniske beskrivelser
r • Les filen fra begynnelsen.
• Returnerer usann hvis filen ikke finnes.
• Kun lesetilgang
r+ • Les filen fra begynnelsen
• Returnerer usann hvis filen ikke finnes.
• Les og skriv
w • Skriv til fil i begynnelsen
• Avkort filen til null lengde
• Hvis filen ikke finnes, prøv å opprette den.
• Kun skrive
w+ • Skriv til fil i begynnelsen, avkort filen til null lengde
• Hvis filen ikke finnes, prøv å opprette den.
• Les og skriv
a • Legg til fil på slutten
• Hvis filen ikke finnes, prøv å opprette den.
• Kun skrive
a+ • Legg til fil på slutten
• Hvis filen ikke finnes, prøv å opprette den
• Les og skriv
  • «$use_include_path» er valgfritt, standardverdien er «false». Hvis den er satt til «true», søker funksjonen også i «include path».
  • «$context» er valgfritt og kan brukes til å spesifisere kontekststøtten.

PHP fwrite() funksjon

fwrite-funksjonen brukes til å skrive til filer.

Den har følgende syntaks.

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

HER,

  • "fwrite" er PHP-funksjonen for å skrive til filer
  • "$handle" er filpekerressursen
  • «$string» er dataene som skal skrives til filen.
  • «$length» er valgfritt og kan brukes til å angi maksimal fillengde.

PHP fclose() funksjon

Funksjonen fclose() brukes til å lukke en fil i PHP som allerede er åpen.

Den har følgende syntaks.

<?php
fclose($handle);
?>

HER,

  • "fclose" er PHP funksjon for å lukke en åpen fil
  • "$handle" er filpekerressursen.

La oss nå se på et eksempel som lager my_settings.txt. Vi skal bruke funksjonene fopen, fwrite og fclose.

Koden under "create_my_settings_file.php" implementerer eksemplet ovenfor.

Åpne filen
<?php

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

or

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

fclose($fh);

?>
Lag 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"; ?>

Tester koden

Åpne URL http://localhost/phptuts/create_my_settings.php i nettleseren din.

Du får opp følgende side.

PHP fclose funksjon

Merk: hvis disken din er full eller du ikke har tillatelse til å skrive filer, får du en feilmelding.

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

PHP fgets() funksjon

Funksjonen fgets brukes til å lese PHP-filer linje for linje. Den har følgende grunnleggende syntaks.

<?php
fgets($handle);
?>

HER,

  • «fgets» er PHP-funksjonen for å lese fillinjer
  • "$handle" er filpekerressursen.

La oss nå se på et eksempel som leser my_settings.txt-filen ved hjelp av fopen- og fgets-funksjonene.

Koden nedenfor read_my_settings.php implementerer eksemplet ovenfor.

<?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"-funksjonen returnerer pekeren til filen spesifisert i filbanen
  • Funksjonen «die()» kalles hvis det oppstår en feil. Den viser en melding og avslutter kjøringen av skriptet.

PHP copy() funksjon

PHP-kopifunksjonen brukes til å kopiere filer. Den har følgende grunnleggende syntaks.

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

HER,

  • "$file" spesifiserer filbanen og navnet på filen som skal kopieres.
  • «$copied_file» angir banen og navnet på den kopierte filen

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

Sletter en fil

Funksjonen «unlink» brukes til å 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() funksjon

File_get_contents-funksjonen brukes til å lese hele filinnholdet.

Forskjellen mellom file_get_contents og fgets er at file_get_contents returnerer fildataene som en streng, mens fgets leser 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
?>

Hurtigreferanse for PHP-filfunksjoner

Tabellen nedenfor oppsummerer filfunksjonene som dekkes i denne veiledningen.

Funksjon Tekniske beskrivelser
Filen eksisterer Brukes til å avgjøre om en fil eksisterer eller ikke
åpen Brukes til å åpne en fil. Returnerer en peker til den åpnede filen
fskriv Brukes til å skrive til filer
flukk Brukes til å lukke en åpen fil
fgets Brukes til å lese en fil linje for linje
kopiere Brukes til å kopiere en eksisterende fil
frakoble Brukes til å slette en eksisterende fil
file_get_contents Brukes til å returnere innholdet i en fil som en streng

Spørsmål og svar

fgets leser én linje per kall, fread leser et angitt antall byte fra en åpen håndtak, og file_get_contents leser hele filen til en streng i ett kall uten å måtte bruke fopen eller fclose.

fwrite skriver til en åpen filhåndtak og trenger fopen og fclose rundt den. file_put_contents åpner, skriver og lukker filen i et enkelt kall, noe som gjør den til det kortere valget for enkle skrivinger.

Bruk is_writable('file.txt') for å teste skriverettigheter før skriving, og file_exists() for å bekrefte at filen finnes. På Unix-systemer kan chmod() justere tillatelser hvis webserveren eier filen.

Ja. Beskriv formatet, for eksempel CSV, JSON eller et loggoppsett, og AI kan produsere kode ved hjelp av fgetcsv, json_decode eller en tilpasset løkke, pluss feilhåndtering for manglende eller feilformede filer. Test med ekte data.

Ja. Del banen og feilen, så kan AI identifisere en feil relativ bane, en manglende fil eller et problem med tillatelser, og deretter foreslå å bruke en absolutt bane, opprette filen eller justere tillatelsene.

Oppsummer dette innlegget med: