PHP-bestand()-verwerking en -functies

⚡ Slimme samenvatting

Bestandsverwerking in PHP maakt gebruik van een uitgebreide set ingebouwde functies om bestanden op de server aan te maken, te lezen, te schrijven, te kopiëren en te verwijderen. Deze handleiding behandelt `file_exists`, `fopen` en de bijbehorende modi, `fwrite`, `fclose`, `fgets`, `copy`, `unlink` en `file_get_contents` met praktische voorbeelden.

  • 📄 Welke bestanden worden opgeslagen: Bestanden bevatten configuratie-instellingen, logboeken en eenvoudige gegevens, wat een goedkope en permanente opslagoptie biedt in vergelijking met een database.
  • 🔍 Bestanden controleren: `file_exists()` controleert of een bestand bestaat voordat je het leest of aanmaakt, waardoor fouten worden voorkomen.
  • 📂 Bestanden openen: fopen() opent een bestand in een modus zoals r, w of a, waarmee het lezen, schrijven en toevoegen wordt geregeld.
  • ✍️ Schrijven en afsluiten: fwrite() stuurt gegevens naar de bestandsgreep en fclose() geeft de greep vrij wanneer het werk is voltooid.
  • ???? Bestanden lezen: fgets() leest één regel per keer, terwijl file_get_contents() het hele bestand als één enkele tekenreeks retourneert.
  • 🗂️ Kopiëren en verwijderen: `copy()` kopieert een bestand naar een nieuw pad, en `unlink()` verwijdert een bestand permanent van de server.
  • 🤖 AI-assistentie: AI-tools kunnen code genereren voor het parseren van bestanden en fouten met betrekking tot machtigingen of het niet kunnen openen van streams snel oplossen.

PHP-bestandsverwerking

Wat is een bestand?

Een bestand is eenvoudigweg een hulpmiddel voor het opslaan van informatie op een computer.

Bestanden worden meestal gebruikt om informatie op te slaan, zoals:

  • Configuratie-instellingen van een programma
  • Eenvoudige gegevens zoals contactnamen gekoppeld aan telefoonnummers.
  • Afbeeldingen, foto's en soortgelijke media.

Ondersteuning voor PHP-bestandsformaten

PHP-bestandsfuncties ondersteunen een breed scala aan bestandsindelingen, waaronder:

  • Bestand.txt
  • Bestand.log
  • Bestand.aangepaste_extensie, bijvoorbeeld bestand.xyz
  • Bestand.csv
  • Bestanden zoals .gif, .jpg en vergelijkbare afbeeldingsformaten.

Bestanden zijn in diverse situaties nuttig:

  • Ze bieden een permanente, kosteneffectieve oplossing voor gegevensopslag van eenvoudige gegevens, in tegenstelling tot databases waarvoor andere software en vaardigheden nodig zijn om DBMS-systemen te beheren.
  • Je wilt eenvoudige gegevens zoals serverlogboeken opslaan om ze later op te halen en te analyseren.
  • Je wilt programma-instellingen opslaan, bijvoorbeeld in het bestand program.ini.

PHP-bestandsfuncties

PHP biedt een handige manier om met bestanden te werken dankzij de uitgebreide verzameling ingebouwde functies.

Operasystemen zoals Windows en macOS zijn niet hoofdlettergevoelig, terwijl Linux or Unix besturingssystemen zijn hoofdlettergevoelig.

Het hanteren van een naamgevingsconventie, zoals het gebruik van uitsluitend kleine letters voor bestandsnamen, is een goede gewoonte die maximale compatibiliteit tussen verschillende platformen garandeert.

Laten we nu eens kijken naar enkele van de meest gebruikte PHP-bestandsfuncties.

PHP file_exists() Functie

Deze functie wordt gebruikt om te bepalen of een bestand bestaat of niet.

  • Het is handig wanneer we willen weten of een bestand bestaat voordat we het verwerken.
  • U kunt deze functie ook gebruiken wanneer u een nieuw bestand aanmaakt en u er zeker van wilt zijn dat het bestand niet al op de server bestaat.

De functie file_exists heeft de volgende syntaxis.

<?php
file_exists($filename);
?>

HIER,

  • “file_exists()” is de PHP-functie die true retourneert als het bestand bestaat en false als het niet bestaat.
  • “$filename” is het pad en de naam van het bestand dat gecontroleerd moet worden.

De onderstaande code gebruikt de functie `file_exists` om te bepalen of het bestand `my_settings.txt` bestaat.

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

Sla de bovenstaande code op in een bestand met de naam file_function.php. Stel dat je het bestand hebt opgeslagen in de map phptuts in htdocs, open het dan. URL http://localhost/phptuts/file_function.php in uw browser. U krijgt de volgende resultaten te zien.

PHP file_exists() Functie

PHP fopen() Functie

De functie `fopen` wordt gebruikt om bestanden te openen. De syntaxis is als volgt.

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

HIER,

  • “fopen” is de PHP-openbestandsfunctie
  • “$file_name” is de naam van het bestand dat moet worden geopend
  • “$mode” geeft de modus aan waarin het bestand geopend moet worden. De onderstaande tabel toont de modi.
Mode Beschrijving
r • Bestand vanaf het begin lezen.
• Retourneert false als het bestand niet bestaat.
• Alleen lezen
r+ • Bestand vanaf het begin lezen
• Retourneert false als het bestand niet bestaat.
• Lezen en schrijven
w • Schrijf naar bestand aan het begin
• Bestand inkorten tot een lengte van nul
• Als het bestand niet bestaat, probeer het dan aan te maken.
• Alleen schrijven
w+ • Schrijf naar het bestand aan het begin, kap het bestand af tot een lengte van nul
• Als het bestand niet bestaat, probeer het dan aan te maken.
• Lezen en schrijven
a • Aan het einde toevoegen aan bestand
• Als het bestand niet bestaat, probeer het dan aan te maken.
• Alleen schrijven
a+ • Aan het einde toevoegen aan bestand
• Als het bestand niet bestaat, probeer het dan aan te maken.
• Lezen en schrijven
  • “$use_include_path” is optioneel, de standaardwaarde is false. Indien ingesteld op true, zoekt de functie ook in het include-pad.
  • “$context” is optioneel en kan worden gebruikt om de contextondersteuning te specificeren.

PHP fwrite() Functie

De functie fwrite wordt gebruikt om naar bestanden te schrijven.

De syntaxis is als volgt.

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

HIER,

  • “fwrite” is de PHP-functie voor het schrijven naar bestanden
  • “$handle” is de bestandsaanwijzerbron
  • “$string” is de data die naar het bestand moet worden geschreven.
  • “$length” is optioneel en kan worden gebruikt om de maximale bestandslengte op te geven.

PHP fclose() Functie

De functie fclose() wordt in PHP gebruikt om een ​​bestand te sluiten dat al geopend is.

De syntaxis is als volgt.

<?php
fclose($handle);
?>

HIER,

  • "fclose" is de PHP-functie voor het sluiten van een geopend bestand
  • “$handle” is de bestandsaanwijzerbron.

Laten we nu eens kijken naar een voorbeeld waarin het bestand my_settings.txt wordt aangemaakt. We gebruiken hiervoor de functies fopen, fwrite en fclose.

De onderstaande code “create_my_settings_file.php” implementeert het bovenstaande voorbeeld.

Open het bestand
<?php

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

or

die("Failed to create file"); ?>
Een bestand sluiten
<?php

fclose($fh);

?>
Maak een bestand
<?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"; ?>

Het testen van de code

Open de URL http://localhost/phptuts/create_my_settings.php in uw browser.

U krijgt de volgende pagina.

PHP fclose-functie

Let op: als uw schijf vol is of u geen toestemming heeft om bestanden te schrijven, krijgt u een foutmelding.

Schakel terug naar de URL http://localhost/phptuts/file_function.phpWelke resultaten krijg je?

PHP fgets() Functie

De functie `fgets` wordt gebruikt om PHP-bestanden regel voor regel te lezen. De basissyntaxis is als volgt.

<?php
fgets($handle);
?>

HIER,

  • "fgets" is de PHP-functie voor het lezen van regels uit een bestand.
  • “$handle” is de bestandsaanwijzerbron.

Laten we nu eens kijken naar een voorbeeld waarin het bestand my_settings.txt wordt gelezen met behulp van de functies fopen en fgets.

De onderstaande code read_my_settings.php implementeert het bovenstaande voorbeeld.

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

HIER,

  • De functie “fopen” retourneert de verwijzing naar het bestand dat is opgegeven in het bestandspad
  • De functie "die()" wordt aangeroepen als er een fout optreedt. Deze geeft een bericht weer en beëindigt de uitvoering van het script.

PHP copy() Functie

De PHP-functie `copy` wordt gebruikt om bestanden te kopiëren. De basissyntaxis is als volgt.

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

HIER,

  • “$file” specificeert het bestandspad en de naam van het bestand dat moet worden gekopieerd.
  • “$copied_file” specificeert het pad en de naam van het gekopieerde bestand.

De onderstaande code illustreert de implementatie.

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

Een bestand verwijderen

De functie `unlink` wordt gebruikt om een ​​bestand te verwijderen. De onderstaande code illustreert de implementatie.

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

PHP file_get_contents() Functie

De file_get_contents functie wordt gebruikt om de volledige bestandsinhoud te lezen.

Het verschil tussen file_get_contents en fgets is dat file_get_contents de bestandsgegevens als een tekenreeks retourneert, terwijl fgets het bestand regel voor regel leest.

De onderstaande code illustreert de implementatie.

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

Snel naslagwerk voor PHP-bestandsfuncties

De onderstaande tabel geeft een overzicht van de bestandsfuncties die in deze handleiding worden behandeld.

Functie Beschrijving
file_exists Wordt gebruikt om te bepalen of een bestand bestaat of niet
open Wordt gebruikt om een ​​bestand te openen. Retourneert een verwijzing naar het geopende bestand
schrijven Wordt gebruikt om naar bestanden te schrijven
fsluiten Wordt gebruikt om een ​​geopend bestand te sluiten.
fgets Wordt gebruikt om een ​​bestand regel voor regel te lezen
kopiëren Wordt gebruikt om een ​​bestaand bestand te kopiëren
ontkoppelen Wordt gebruikt om een ​​bestaand bestand te verwijderen
file_get_contents Wordt gebruikt om de inhoud van een bestand als een string terug te geven

Veelgestelde vragen

fgets leest één regel per aanroep, fread leest een vast aantal bytes van een geopende handle, en file_get_contents leest het hele bestand in één keer in een tekenreeks zonder dat fopen of fclose nodig zijn.

fwrite schrijft naar een geopende bestandshandle en vereist fopen en fclose eromheen. file_put_contents opent, schrijft en sluit het bestand in één enkele aanroep, waardoor het de kortere optie is voor eenvoudige schrijfbewerkingen.

Gebruik `is_writable('file.txt')` om de schrijfrechten te controleren voordat je gaat schrijven, en `file_exists()` om te bevestigen dat het bestand bestaat. Op Unix-systemen kan `chmod()` de rechten aanpassen als de webserver eigenaar is van het bestand.

Ja. Beschrijf het formaat, zoals CSV, JSON of een logbestand, en de AI kan code genereren met behulp van fgetcsv, json_decode of een aangepaste lus, inclusief foutafhandeling voor ontbrekende of onjuist opgemaakte bestanden. Test met echte data.

Ja. Deel het pad en de foutmelding, en AI kan een onjuist relatief pad, een ontbrekend bestand of een probleem met de machtigingen identificeren. Vervolgens kan AI voorstellen om een ​​absoluut pad te gebruiken, het bestand aan te maken of de machtigingen aan te passen.

Vat dit bericht samen met: