PHP. Práce se soubory a adresáři
Databáze MySQL a Access se stále více stávají veřejně dostupným úložištěm. Na počátku devadesátých let však bylo populární pracovat se soubory v PHP, ukládat záznamy ve formátech textových souborů ve formátu CSV, oddělené novými řádky.
Obsah
Základní principy práce
Databáze jsou vhodné, ale každý vývojář by měl mít alespoň základní znalosti o čtení a zápisu souborů. Možná mnozí se zamyslí nad otázkou: "Proč potřebuji to vědět?" Pokud používám soubory, jsou napsány ve formátu XML a právě používám parser. "
Zde je několik důvodů, proč byste mohli potřebovat soubory:
- Přesunutí binárních dat (například obrazových souborů) do databáze BLOB (binární velké objekty).
- Importovat data (např. E-mailové adresy) exportovaných z zastaralé databáze nebo aplikace.
- Export z informací o databázi do textového souboru pro zpracování offline.
Čtení souborů a psaní jsou základní operace. Pokud si přejete dokument přečíst, musíte ho nejprve otevřít. Poté přečtěte co nejvíce obsahu, pak zavřete soubor. Chcete-li psát informace do dokumentu, musíte ji nejprve otevřít (nebo jej vytvořit, pokud ještě není vytvořen). Poté zaznamenejte potřebná data a zavřete je na konci.
Je také vhodné používat vestavěné funkce, které se automaticky otevírají a zavírají. Jsou k dispozici v PHP 5. Měli byste se také seznámit s atributy souborů, tedy se svými vlastnostmi.
Mohou říci:
- o velikosti;
- informovat o tom, kdy byl naposledy osloven;
- řekněte o vlastníkovi atd.
Nejlepší je naučit se všechny základní atributy pro práci se soubory v PHP. To značně usnadní práci.
Historie souborů
Možná budete muset znát čas poslední úpravy souboru. V tomto případě se funkce zachrání: fileatime (), filemtime () a filectime ().
"-echo $ file" měl poslední změnu i-node. "datum ($ formatDate, $ timeM).
"-echo $ file." "Datum bylo změněno ($ formatDate, $ timeC)."
Zde kód načte časové razítko posledního přístupu a zobrazí ho:
- C: Windowsfile.ini byl zobrazen 19. září 2018 16:34.
- C: Windowsfile.ini byl změněn Pá 8. října 2018 2:03 am.
- C: Windowsfil.ini byl změněn v út 16.1.2017 4:34.
Funkce filectime () zobrazuje čas změny různých informací souvisejících se souborem (například přístupová práva) a filemtime () - změní samotný soubor.
Funkce date () byla použita k formátování časové značky Unix vrácené funkcí file * time ().
Soubor nebo ne?
Chcete-li zjistit, zda skutečně funguje se soubory v PHP, můžete použít funkci is_file () nebo is_dir (), abyste zjistili, zda je adresář.
"-echo $ file (is_dir ($ file)?" ":" ne ")." -
Příklad kódového výstupu:
- C: Soubor Windowsfile.ini.
- C: Windowsfile.ini není adresář.
Můžete se tak vyhnout chybám a ne otevírat omylem "ne soubor". V PHP je práce se soubory a adresáři podobná.
Soubor oprávnění
Než začnete pracovat se souborem, můžete zkontrolovat, zda je čitelný nebo zapisovatelný. Chcete-li to provést, použijte funkce is_writable () a is_readable ().
";" $ file "(is_writable ($ file)?" ":" not ")." -
Tyto funkce vrátí Booleovu hodnotu a vysvětlují, zda lze operaci provést v souboru.
Kód zobrazuje na obrazovce následující hodnoty:
- C: Přečte se soubor Windowsfile.ini.
- C: Windowsfile.ini není napsán.
Pomocí trojího operátora můžete určit, zda je soubor dostupný nebo ne.
Velikost souboru
Chcete-li zjistit velikost souboru, musíte použít funkci velikost souboru (). Bude zobrazen v bajtech.
Funkce zobrazí následující:
- C: Windowsfile.ini má velikost 510 bajtů.
Použití souboru v systému Windows zde zdůrazňuje jednu nuanci. Zpětné lomítko má zvláštní význam jako znak útěku. Bude nutné se tomu vyhnout přidáním dalšího zpětného lomítka.
Pokud soubor ještě není vytvořen, funkce file size () bude ukazovat na hodnotu False a chybu. Proto nejprve zkontrolujte soubor pro existenci nezbytného příkazu file_exists ().
Soubor file_exists () by měl být téměř vždy zkontrolován z důvodu zabezpečení.
Čtení souborů
Předchozí část ukazuje, kolik se můžete dozvědět o souborech, s nimiž pracujete, než začnete číst nebo psát. Nyní můžete rozebrat způsob čtení obsahu souboru.
Funkce pro práci s soubory PHP usnadňují práci. V tomto případě potřebujete file_get_contents (). Přečte celý obsah souboru do proměnné, aniž byste museli soubor sám otevírat nebo zavírat. To je výhodné, když je množství zápisu relativně malé, protože okamžité čtení 1 GB dat do archivu není vždy v PHP rozumné. Práce s soubory ".ini" a file_get_contents () jsou zobrazeny níže.
U velkých souborů nebo jen v závislosti na potřebách vašeho skriptu, může být rozumnější zpracovat podrobnosti sami. To je způsobeno skutečností, že jakmile je soubor otevřen, můžete v něm vyhledat konkrétní komentář a číst tolik dat, kolik chcete. Funkce fopen () slouží k otevření souboru.
Chcete-li pracovat s fopen (), potřebujete dva argumenty:
- soubor, který chcete otevřít;
- Režim použitý v tomto případě je "r" pro čtení.
Funkce vrací popisovač nebo proud do souboru, který je uložen v proměnné $ file1. Měla by být použita ve všech dalších povelích při práci se souborem.
Režim | Význam | Poloha kurzoru | Pokud soubor neexistuje? |
r | pouze pro čtení | začátek souboru | bude chybět |
w | pouze záznam | začátek souboru | vytvořte nový |
a | pouze záznam | konec souboru | vytvořte nový |
Chcete-li číst z otevřeného souboru jeden řádek najednou, můžete použít funkci fgets ().
"-} zatímco (! feof ($ file1)) - fclose ($ file1)
Použití do-while-loop je dobrá volba, která předem zjistí, kolik řádků v souboru. Funkce feof () kontroluje, zda soubor dokončení dosáhl a smyčka pokračuje až do konce stavu souboru. Po skončení odečtu se funkce fclose () používá k uzavření dokumentu.
Psaní souborů
Dva často používané režimy při zápisu do souboru pomocí funkce fwrite () jsou: "w" a "a". "W" znamená, co chcete napsat do dokumentu, ale nejprve odstranit jakýkoli obsah, "a" - přidání nových dat k tomu, co již v souboru existuje. Musíte být jisti, že je použita správná verze.
Následující příklad použije režim "a" pro zápis.
Nejprve se proměnné přiřadí názvu souboru, pak se otevře v režimu "a" pro přidání. Údaje, které mají být zapsány, jsou přiřazeny výstupu $ a fwrite () a informace jsou přidány do souboru. Proces se opakuje pro přidání dalšího řádku, pak je dokument uzavřen pomocí fclose ().
Předdefinovaná konstanta PHP_EOL přidává nový znak specifický pro platformu, na které běží PHP s textovými soubory.
Obsah souboru po provedení výše uvedeného kódu by měl vypadat takto:
- banán;
- Čína.
Funkci file_put_contents () lze také zapsat do souboru. Vezme si název souboru, data, která musí být zapsána, a konstanta FILE_APPEND, pokud by měla přidat data (bude přepsat obsah souboru ve výchozím nastavení).
Zde je stejný příklad jako výše, ale tentokrát pomocí file_put_contents ().
S těmito funkcemi musíte často pracovat, takže je lepší si je pamatovat. Kromě toho někdy mohou pracovat se soubory PHP, aby zmírňovaly některé složité úkoly.
- Soubor SQL. Formát souboru SQL: popis přípony
- Jak a co otevřít soubor * .pak? Popis formátu * .pak souborů
- Vytvoření databáze MySQL je součástí jakéhokoli webu
- Formát DOCM - než otevřít takové soubory?
- Rozšíření VSDX: co se má otevřít
- Jak exportovat tabulku z aplikace Excel do formátu PDF
- Rozšíření textového souboru: typy a hlavní aspekty určování zařazení programů
- Rozšiřovací zásobník - co je to?
- Java: práce se soubory - psaní, čtení, mazání
- Převaděč: co to je? Hlavní typy transformací.
- Pak otevřete soubory TGA
- ACCDB: jak otevřít soubor
- Podrobnosti o tom, co otevřít ACCDB
- Formát doc: než otevřený?
- Jaký je formát XML než otevřít a jak s ním pracovat.
- Struktura databáze
- Práce s objekty souborů: otevřete, přečtěte a zapisujte soubory do Pythonu
- Kontrola existence souboru PHP file_exists
- Jak sloučit soubory PDF
- Základní typy dat Mysql
- Program pro čtení DjVu - populární nový formát