PHP soubor otevřít/číst/zavřít
V této kapitole vás naučíme, jak otevřít, přečíst a zavřít soubor na serveru.
Otevřený soubor PHP - fopen()
Lepší způsob otevírání souborů je pomocí fopen()
funkce. Tato funkce vám poskytuje více možností než readfile()
funkce.
Během lekcí budeme používat textový soubor „webdictionary.txt“:
AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language
První parametr fopen()
obsahuje název souboru, který se má otevřít, a druhý parametr určuje, v jakém režimu se má soubor otevřít. Následující příklad také vygeneruje zprávu, pokud funkce fopen() nemůže otevřít zadaný soubor:
Příklad
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?>
Tip: Funkce fread()
a fclose()
budou vysvětleny níže.
Soubor lze otevřít v jednom z následujících režimů:
Modes | Description |
---|---|
r | Open a file for read only. File pointer starts at the beginning of the file |
w | Open a file for write only. Erases the contents of the file or creates a new file if it doesn't exist. File pointer starts at the beginning of the file |
a | Open a file for write only. The existing data in file is preserved. File pointer starts at the end of the file. Creates a new file if the file doesn't exist |
x | Creates a new file for write only. Returns FALSE and an error if file already exists |
r+ | Open a file for read/write. File pointer starts at the beginning of the file |
w+ | Open a file for read/write. Erases the contents of the file or creates a new file if it doesn't exist. File pointer starts at the beginning of the file |
a+ | Open a file for read/write. The existing data in file is preserved. File pointer starts at the end of the file. Creates a new file if the file doesn't exist |
x+ | Creates a new file for read/write. Returns FALSE and an error if file already exists |
PHP soubor pro čtení - fread()
Funkce fread()
čte z otevřeného souboru.
První parametr fread()
obsahuje název souboru, ze kterého se má číst, a druhý parametr určuje maximální počet bajtů ke čtení.
Následující kód PHP přečte soubor „webdictionary.txt“ až do konce:
fread($myfile,filesize("webdictionary.txt"));
Zavřít soubor PHP - fclose()
Funkce fclose()
se používá k uzavření otevřeného souboru.
Je dobrým programátorským postupem zavřít všechny soubory poté, co s nimi skončíte. Nechcete, aby otevřený soubor běhal na vašem serveru a zabíral zdroje!
Vyžaduje název souboru (nebo proměnnou, která obsahuje fclose()
název souboru), který chceme zavřít:
<?php
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?>
PHP číst jeden řádek - fgets()
Funkce fgets()
se používá ke čtení jednoho řádku ze souboru.
Níže uvedený příklad zobrazuje první řádek souboru „webdictionary.txt“:
Příklad
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?>
Poznámka: Po volání fgets()
funkce se ukazatel souboru přesunul na další řádek.
PHP Check End-Of-File - feof()
Funkce feof()
kontroluje, zda bylo dosaženo „konce souboru“ (EOF).
Funkce feof()
je užitečná pro procházení dat neznámé délky.
Níže uvedený příklad čte soubor „webdictionary.txt“ řádek po řádku, dokud není dosaženo konce souboru:
Příklad
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one line until end-of-file
while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>
PHP čtení jednoho znaku - fgetc()
Funkce fgetc()
se používá ke čtení jednoho znaku ze souboru.
Níže uvedený příklad čte soubor „webdictionary.txt“ znak po znaku, dokud není dosaženo konce souboru:
Příklad
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one character until end-of-file
while(!feof($myfile)) {
echo fgetc($myfile);
}
fclose($myfile);
?>
Poznámka: Po volání fgetc()
funkce se ukazatel souboru přesune na další znak.
Kompletní reference souborového systému PHP
Úplnou referenci o funkcích souborového systému naleznete v naší úplné příručce souborového systému PHP .