PHP fájl() kezelése és függvényei

⚡ Okos összefoglaló

A PHP fájlfeldolgozása beépített függvények gazdag készletét használja fájlok létrehozásához, olvasásához, írásához, másolásához és törléséhez a szerveren. Ez a bemutató a file_exists, az fopen és módjai, az fwrite, fclose, fgets, copy, unlink és a file_get_contents függvényeket tárgyalja gyakorlati példákkal illusztrálva.

  • 📄 Milyen fájlokat tárol: A fájlok konfigurációs beállításokat, naplókat és egyszerű adatokat tartalmaznak, így olcsóbb állandó tárolási lehetőséget kínálnak egy adatbázishoz képest.
  • 🔍 Fájlok ellenőrzése: A file_exists() függvény ellenőrzi, hogy egy fájl létezik-e, mielőtt beolvasnád vagy létrehoznád, így elkerülve a hibákat.
  • 📂 Fájlok megnyitása: Az fopen() függvény r, w vagy a módban nyitja meg a fájlt, amely az olvasást, írást és hozzáfűzést vezérli.
  • ✍️ Írás és lezárás: Az fwrite() függvény adatokat küld a fájlkezelőnek, az fclose() pedig feloldja a kezelőt, amikor a munka befejeződött.
  • ???? Fájlok olvasása: Az fgets() függvény egyszerre egy sort olvas be, míg a file_get_contents() függvény a teljes fájlt egyetlen karakterláncként adja vissza.
  • 🗂️ Másolás és törlés: A copy() függvény új elérési útra másolja a fájlt, az unlink() függvény pedig véglegesen törli a fájlt a szerverről.
  • 🤖 AI Assist: A mesterséges intelligencia eszközei képesek fájlelemző kódot generálni, és gyorsan feloldani az engedélyezési vagy a stream megnyitásának sikertelen hibáit.

PHP fájlfeldolgozás

Mi az a fájl?

A fájl egyszerűen egy erőforrás az információk számítógépen való tárolására.

A fájlok általában olyan információk tárolására szolgálnak, mint például:

  • Egy program konfigurációs beállításai
  • Egyszerű adatok, például a kapcsolattartók nevei és telefonszámai.
  • Képek, képek, fotók és hasonló médiatartalmak.

PHP fájlformátumok támogatása

A PHP fájlfunkciók a fájlformátumok széles skáláját támogatják, beleértve:

  • Fájl.txt
  • File.log
  • Fájl.egyéni_kiterjesztés, azaz fájl.xyz
  • Fájl.csv
  • File.gif, file.jpg és hasonló képformátumok

A fájlok számos esetben hasznosak:

  • Állandó, költséghatékony adattárolási megoldást kínálnak az egyszerű adatokhoz, összehasonlítva azokkal az adatbázisokkal, amelyek más szoftvereket és ismereteket igényelnek a DBMS rendszerek kezeléséhez.
  • Egyszerű adatokat, például szervernaplókat szeretne tárolni későbbi visszakeresés és elemzés céljából.
  • A programbeállításokat, azaz a program.ini fájlt szeretnéd tárolni.

PHP fájlfüggvények

A PHP a beépített függvények gazdag gyűjteményének köszönhetően kényelmes módot kínál a fájlokkal való munkára.

Operating rendszerek, mint pl Windows és a macOS nem megkülönböztetik a kis- és nagybetűket, míg Linux or Unix operációs rendszerek megkülönböztetik a kis- és nagybetűket.

A fájlok elnevezésére vonatkozó elnevezési konvenciók, például a kisbetűk használata jó gyakorlat, amely biztosítja a maximális platformfüggetlen kompatibilitást.

Most pedig nézzük meg a leggyakrabban használt PHP fájlfüggvényeket.

PHP file_exists() függvény

Ez a funkció annak meghatározására szolgál, hogy egy fájl létezik-e vagy sem.

  • Akkor hasznos, ha egy fájl létezésének meglétét szeretnénk tudni a feldolgozás előtt.
  • Ezt a funkciót akkor is használhatja, amikor új fájlt hoz létre, és meg akarja győződni arról, hogy a fájl még nem létezik a szerveren.

A file_exists függvény szintaxisa a következő.

<?php
file_exists($filename);
?>

ITT,

  • A „file_exists()” a PHP függvény, amely igazat ad vissza, ha a fájl létezik, és false értéket, ha nem létezik.
  • A „$filename” a vizsgálandó fájl elérési útja és neve.

Az alábbi kód a file_exists függvényt használja annak megállapítására, hogy létezik-e a my_settings.txt fájl.

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

Mentsd el a fenti kódot egy file_function.php nevű fájlba. Feltételezve, hogy a fájlt a htdocs phptuts mappájába mentetted, nyisd meg a URL http://localhost/phptuts/file_function.php a böngésződben. A következő eredményeket fogod kapni.

PHP file_exists() függvény

PHP fopen() függvény

Az fopen függvény fájlok megnyitására szolgál. Szintaxisa a következő.

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

ITT,

  • Az „fopen” a PHP fájl megnyitása funkciója
  • A „$file_name” a megnyitandó fájl neve
  • A „$mode” a fájl megnyitásához használt mód. Az alábbi táblázat a módokat mutatja.
Mód Leírás
r • Olvassa el a fájlt az elejétől.
• Hamis értéket ad vissza, ha a fájl nem létezik.
• Csak olvasható
r+ • Olvassa el a fájlt az elejétől
• Hamis értéket ad vissza, ha a fájl nem létezik.
• Olvass és írj
w • Írja be a fájlba az elején
• Csonkolja a fájlt nulla hosszúságúra
• Ha a fájl nem létezik, próbálja meg létrehozni.
• Csak írjon
w+ • Írjon fájlba az elején, csonkolja a fájlt nullára
• Ha a fájl nem létezik, próbálja meg létrehozni.
• Olvass és írj
a • Hozzáfűzi a fájl végéhez
• Ha a fájl nem létezik, próbálja meg létrehozni.
• Csak írjon
a+ • Hozzáfűzi a fájl végéhez
• Ha a fájl nem létezik, próbálja meg létrehozni
• Olvass és írj
  • A „$use_include_path” opcionális, az alapértelmezett érték hamis. Ha igazra van állítva, a függvény a beillesztési útvonalon is keres.
  • A „$context” opcionális, és a kontextus támogatásának megadására használható.

PHP fwrite() függvény

Az fwrite függvény fájlokba írásra szolgál.

A következő szintaxissal rendelkezik.

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

ITT,

  • Az „fwrite” a PHP funkciója a fájlok írására
  • A „$handle” a fájlmutató erőforrása
  • A „$string” a fájlba írandó adat.
  • A „$length” opcionális, és a maximális fájlhossz megadására használható.

PHP fclose() függvény

Az fclose() függvény PHP-ben egy már megnyitott fájl bezárására szolgál.

A következő szintaxissal rendelkezik.

<?php
fclose($handle);
?>

ITT,

  • „fclose” a PHP függvény megnyitott fájl bezárásához
  • A „$handle” a fájlmutató erőforrása.

Most nézzünk egy példát, amely létrehozza a my_settings.txt fájlt. Az fopen, fwrite és fclose függvényeket fogjuk használni.

A „create_my_settings_file.php” alatti kód megvalósítja a fenti példát.

Nyissa meg a fájlt
<?php

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

or

die("Failed to create file"); ?>
Fájl bezárása
<?php

fclose($fh);

?>
Fájl létrehozása
<?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"; ?>

A kód tesztelése

Nyissa meg a URL http://localhost/phptuts/create_my_settings.php a böngészőben.

A következő oldalt fogod kapni.

PHP fclose függvény

Megjegyzés: ha a lemez megtelt, vagy nincs engedélye fájlok írására, hibaüzenetet fog kapni.

Váltson vissza a URL http://localhost/phptuts/file_function.phpMilyen eredményeket kapsz?

PHP fgets() függvény

Az fgets függvény PHP fájlok soronkénti beolvasására szolgál. Alapvető szintaxisa a következő.

<?php
fgets($handle);
?>

ITT,

  • Az „fgets” egy PHP függvény a fájlsorok olvasására.
  • A „$handle” a fájlmutató erőforrása.

Most nézzünk egy példát, amely a my_settings.txt fájlt olvassa be az fopen és fgets függvények segítségével.

A read_my_settings.php alábbi kód a fenti példát valósítja meg.

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

ITT,

  • Az „fopen” függvény visszaadja a mutatót a fájl elérési útjában megadott fájlra
  • A „die()” függvényt hiba esetén hívjuk meg. Megjelenít egy üzenetet, és kilép a szkript végrehajtásából.

PHP copy() függvény

A PHP másolási függvénye fájlok másolására szolgál. Alapvető szintaxisa a következő.

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

ITT,

  • A „$file” a másolandó fájl elérési útját és nevét adja meg.
  • A „$copied_file” paraméterrel megadható a másolt fájl elérési útja és neve.

Az alábbi kód a megvalósítást szemlélteti.

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

Fájl törlése

Az unlink függvény fájlok törlésére szolgál. Az alábbi kód a megvalósítását szemlélteti.

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

PHP file_get_contents() függvény

A file_get_contents függvény a teljes fájltartalom beolvasására szolgál.

A file_get_contents és az fgets közötti különbség az, hogy a file_get_contents karakterláncként adja vissza a fájl adatait, míg az fgets soronként olvassa be a fájlt.

Az alábbi kód a megvalósítást szemlélteti.

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

PHP fájlfüggvények gyorsreferenciája

Az alábbi táblázat összefoglalja az ebben az oktatóanyagban tárgyalt fájlfüggvényeket.

Funkció Leírás
A fájl létezik Annak meghatározására szolgál, hogy létezik-e fájl vagy sem
nyisd ki Fájl megnyitására szolgál. Egy mutatót ad vissza a megnyitott fájlra
fwrite Fájlok írására szolgál
fclose Megnyitott fájl bezárására szolgál
fgets Egy fájl soronkénti olvasására szolgál
másolat Meglévő fájl másolására szolgál
leválasztás Meglévő fájl törlésére szolgál
file_get_contents A fájl tartalmának karakterláncként való visszaadására szolgál

GYIK

Az fgets hívásonként egy sort olvas be, a fread egy beállított számú bájtot olvas be egy megnyitott handle-ből, és a file_get_contents egyetlen hívás során beolvassa a teljes fájlt egy karakterláncba az fopen vagy fclose használata nélkül.

Az fwrite egy megnyitott fájlkezelőbe ír, és fopen és fclose metódusokat kell köréje írni. A file_put_contents egyetlen hívásban nyitja meg, írja ki és zárja be a fájlt, így ez a rövidebb választás az egyszerű írásokhoz.

Az is_writable('file.txt') függvénnyel ellenőrizheted az írási jogosultságot az írás előtt, a file_exists() függvénnyel pedig megerősítheted a fájl jelenlétét. Unix rendszereken a chmod() függvénnyel módosíthatók az engedélyek, ha a webszerver birtokolja a fájlt.

Igen. Írd le a formátumot, például CSV, JSON vagy naplóelrendezés, és a mesterséges intelligencia fgetcsv, json_decode vagy egyéni ciklus használatával képes kódot létrehozni, valamint hibakezelést biztosít a hiányzó vagy hibásan formázott fájlok esetén. Teszteld valós adatokkal.

Igen. Oszd meg az elérési utat és a hibát, és a mesterséges intelligencia azonosítani tudja a helytelen relatív elérési utat, a hiányzó fájlt vagy az engedélyezési problémákat, majd javasolni tudja az abszolút elérési út használatát, a fájl létrehozását vagy az engedélyek módosítását.

Foglald össze ezt a bejegyzést a következőképpen: