PHP File() Hantering och funktioner

โšก Smart sammanfattning

Filbehandling i PHP anvรคnder en omfattande uppsรคttning inbyggda funktioner fรถr att skapa, lรคsa, skriva, kopiera och ta bort filer pรฅ servern. Denna genomgรฅng tรคcker file_exists, fopen och dess lรคgen, fwrite, fclose, fgets, copy, unlink och file_get_contents med praktiska exempel.

  • ๐Ÿ“„ Vilka filer lagrar: Filer innehรฅller konfigurationsinstรคllningar, loggar och enkla data, vilket ger ett billigt permanent lagringsalternativ jรคmfรถrt med en databas.
  • ๐Ÿ” Kontrollera filer: file_exists() bekrรคftar om en fil finns innan du lรคser frรฅn eller skapar den, vilket undviker fel.
  • ๐Ÿ“‚ ร–ppna filer: fopen() รถppnar en fil i ett lรคge som r, w eller a, vilket styr lรคsning, skrivning och tillรคgg.
  • โœ๏ธ Skrivande och avslutning: fwrite() skickar data till filreferensen, och fclose() slรคpper referensen nรคr arbetet รคr klart.
  • ???? Lรคser filer: fgets() lรคser en rad i taget, medan file_get_contents() returnerar hela filen som en enda strรคng.
  • ๐Ÿ—‚๏ธ Kopiera och radera: copy() duplicerar en fil till en ny sรถkvรคg och unlink() tar bort en fil permanent frรฅn servern.
  • ๐Ÿค– AI Assist: AI-verktyg kan generera filparsningskod och snabbt lรถsa fel som rรถr behรถrighet eller fel som inte kunde รถppnas.

PHP-filbehandling

Vad รคr en fil?

En fil รคr helt enkelt en resurs fรถr att lagra information pรฅ en dator.

Filer anvรคnds vanligtvis fรถr att lagra information som:

  • Konfigurationsinstรคllningar fรถr ett program
  • Enkla data som kontaktnamn mot telefonnummer.
  • Bilder, bilder, foton och liknande media.

Stรถd fรถr PHP-filformat

PHP-filfunktioner stรถder ett brett utbud av filformat som inkluderar:

  • File.txt
  • File.log
  • File.custom_extension, dvs. file.xyz
  • File.csv
  • File.gif, file.jpg och liknande bildformat

Filer รคr anvรคndbara i flera situationer:

  • De tillhandahรฅller en permanent, kostnadseffektiv datalagringslรถsning fรถr enkel data, jรคmfรถrt med databaser som krรคver annan programvara och kompetens fรถr att hantera DBMS-system.
  • Du vill lagra enkla data, till exempel serverloggar, fรถr senare hรคmtning och analys.
  • Du vill lagra programinstรคllningar, t.ex. program.ini

PHP-filfunktioner

PHP erbjuder ett bekvรคmt sรคtt att arbeta med filer tack vare sin rika samling inbyggda funktioner.

Operatingssystem som t.ex Windows och macOS รคr inte skiftlรคgeskรคnsliga, medan Linux or Unix operativsystem รคr skiftlรคgeskรคnsliga.

Att anvรคnda en namngivningskonvention med endast gemener fรถr filnamn รคr en bra praxis som sรคkerstรคller maximal kompatibilitet mellan plattformar.

Lรฅt oss nu titta pรฅ nรฅgra av de vanligaste PHP-filfunktionerna.

PHP file_exists() Funktion

Denna funktion anvรคnds fรถr att avgรถra om en fil finns eller inte.

  • Det รคr praktiskt nรคr vi vill veta om en fil finns innan vi bearbetar den.
  • Du kan รคven anvรคnda denna funktion nรคr du skapar en ny fil och du vill sรคkerstรคlla att filen inte redan finns pรฅ servern.

Funktionen file_exists har fรถljande syntax.

<?php
file_exists($filename);
?>

Hร„R,

  • "file_exists()" รคr PHP-funktionen som returnerar true om filen finns och false om den inte finns.
  • "$filnamn" รคr sรถkvรคgen och namnet pรฅ den fil som ska kontrolleras

Koden nedan anvรคnder funktionen file_exists fรถr att avgรถra om filen my_settings.txt existerar.

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

Spara ovanstรฅende kod i en fil med namnet file_function.php. Om du har sparat filen i mappen phptuts i htdocs, รถppna filen URL http://localhost/phptuts/file_function.php i din webblรคsare. Du kommer att fรฅ fรถljande resultat.

PHP file_exists() Funktion

PHP fopen() Funktion

Funktionen fopen anvรคnds fรถr att รถppna filer. Den har fรถljande syntax.

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

Hร„R,

  • "fopen" รคr PHP-funktionen fรถr รถppen fil
  • "$file_name" รคr namnet pรฅ filen som ska รถppnas
  • "$mode" รคr det lรคge som filen ska รถppnas i. Tabellen nedan visar lรคgena.
Mode BESKRIVNING
r โ€ข Lรคs filen frรฅn bรถrjan.
โ€ข Returnerar falskt om filen inte finns.
โ€ข Endast lรคsning
r+ โ€ข Lรคs filen frรฅn bรถrjan
โ€ข Returnerar falskt om filen inte finns.
โ€ข Lรคsa och skriva
w โ€ข Skriv till filen i bรถrjan
โ€ข Avkorta filen till noll lรคngd
โ€ข Om filen inte finns, fรถrsรถk att skapa den.
โ€ข Skriv endast
w+ โ€ข Skriv till fil i bรถrjan, trunkera filen till noll lรคngd
โ€ข Om filen inte finns, fรถrsรถk att skapa den.
โ€ข Lรคsa och skriva
a โ€ข Lรคgg till filen i slutet
โ€ข Om filen inte finns, fรถrsรถk att skapa den.
โ€ข Skriv endast
a+ โ€ข Lรคgg till filen i slutet
โ€ข Om filen inte finns, fรถrsรถk att skapa den
โ€ข Lรคsa och skriva
  • "$use_include_path" รคr valfritt, standardvรคrdet รคr falskt. Om det รคr satt till sant sรถker funktionen รคven i include-sรถkvรคgen.
  • โ€$contextโ€ รคr valfritt och kan anvรคndas fรถr att ange kontextstรถdet.

PHP fwrite() Funktion

Funktionen fwrite anvรคnds fรถr att skriva till filer.

Den har fรถljande syntax.

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

Hร„R,

  • "fwrite" รคr PHP-funktionen fรถr att skriva till filer
  • "$handle" รคr filpekarresursen
  • "$string" รคr den data som ska skrivas till filen.
  • โ€$lengthโ€ รคr valfritt och kan anvรคndas fรถr att ange maximal fillรคngd.

PHP fclose() Funktion

Funktionen fclose() anvรคnds fรถr att stรคnga en fil i PHP som redan รคr รถppen.

Den har fรถljande syntax.

<?php
fclose($handle);
?>

Hร„R,

  • "fclose" รคr PHP-funktion fรถr att stรคnga en รถppen fil
  • "$handle" รคr filpekarresursen.

Lรฅt oss nu titta pรฅ ett exempel som skapar my_settings.txt. Vi kommer att anvรคnda funktionerna fopen, fwrite och fclose.

Koden nedan "create_my_settings_file.php" implementerar exemplet ovan.

ร–ppna filen
<?php

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

or

die("Failed to create file"); ?>
Stรคnger en fil
<?php

fclose($fh);

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

Testar koden

ร–ppna URL http://localhost/phptuts/create_my_settings.php i din webblรคsare.

Du fรฅr fรถljande sida.

PHP fclose-funktion

Obs: om din disk รคr full eller om du inte har behรถrighet att skriva filer fรฅr du ett felmeddelande.

Vรคxla tillbaka till URL http://localhost/phptuts/file_function.phpVilka resultat fรฅr du?

PHP fgets() Funktion

Funktionen fgets anvรคnds fรถr att lรคsa PHP-filer rad fรถr rad. Den har fรถljande grundlรคggande syntax.

<?php
fgets($handle);
?>

Hร„R,

  • โ€fgetsโ€ รคr PHP-funktionen fรถr att lรคsa filrader
  • "$handle" รคr filpekarresursen.

Lรฅt oss nu titta pรฅ ett exempel som lรคser filen my_settings.txt med hjรคlp av funktionerna fopen och fgets.

Koden nedan read_my_settings.php implementerar exemplet ovan.

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

Hร„R,

  • Funktionen "fopen" returnerar pekaren till filen som anges i filsรถkvรคgen
  • Funktionen โ€die()โ€ anropas om ett fel uppstรฅr. Den visar ett meddelande och avslutar skriptets exekvering.

PHP-kopia () -funktion

PHP-kopieringsfunktionen anvรคnds fรถr att kopiera filer. Den har fรถljande grundlรคggande syntax.

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

Hร„R,

  • "$file" anger filsรถkvรคgen och namnet pรฅ filen som ska kopieras.
  • "$copied_file" anger sรถkvรคgen och namnet pรฅ den kopierade filen

Koden nedan illustrerar implementeringen.

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

Ta bort en fil

Funktionen unlink anvรคnds fรถr att ta bort en fil. Koden nedan illustrerar 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 anvรคnds fรถr att lรคsa hela filens innehรฅll.

Skillnaden mellan file_get_contents och fgets รคr att file_get_contents returnerar fildata som en strรคng, medan fgets lรคser filen rad fรถr rad.

Koden nedan illustrerar implementeringen.

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

Snabbreferens fรถr PHP-filfunktioner

Tabellen nedan sammanfattar de filfunktioner som behandlas i den hรคr handledningen.

Funktion BESKRIVNING
fil existerar Anvรคnds fรถr att avgรถra om en fil finns eller inte
รถppen Anvรคnds fรถr att รถppna en fil. Returnerar en pekare till den รถppnade filen
fwrite Anvรคnds fรถr att skriva till filer
fstรคng Anvรคnds fรถr att stรคnga en รถppen fil
fgets Anvรคnds fรถr att lรคsa en fil rad fรถr rad
kopiera Anvรคnds fรถr att kopiera en befintlig fil
bort lรคnken Anvรคnds fรถr att radera en befintlig fil
file_get_contents Anvรคnds fรถr att returnera innehรฅllet i en fil som en strรคng

Vanliga frรฅgor

fgets lรคser en rad per anrop, fread lรคser ett visst antal byte frรฅn ett รถppet referensvรคrde, och file_get_contents lรคser hela filen till en strรคng i ett anrop utan att behรถva fopen eller fclose.

fwrite skriver till ett รถppet filreferens och behรถver fopen och fclose runt det. file_put_contents รถppnar, skriver och stรคnger filen i ett enda anrop, vilket gรถr det till det kortare valet fรถr enkla skrivningar.

Anvรคnd is_writable('file.txt') fรถr att testa skrivbehรถrighet innan skrivning, och file_exists() fรถr att bekrรคfta att filen finns. Pรฅ Unix-system kan chmod() justera behรถrigheter om webbservern รคger filen.

Ja. Beskriv formatet, till exempel CSV, JSON eller en logglayout, sรฅ kan AI producera kod med fgetcsv, json_decode eller en anpassad loop, plus felhantering fรถr saknade eller felaktigt formaterade filer. Testa med verkliga data.

Ja. Dela sรถkvรคgen och felet, sรฅ kan AI identifiera en felaktig relativ sรถkvรคg, en saknad fil eller ett behรถrighetsproblem, och sedan fรถreslรฅ att man anvรคnder en absolut sรถkvรคg, skapar filen eller justerar behรถrigheter.

Sammanfatta detta inlรคgg med: