Upozornění: Tento článek byl napsán před mnoha lety a některé informace mohou být zastaralé, nebo nepravdivé. Při čtení na to, prosím, berte ohled.
V dnešním článku se naučíme načítat textové soubory ze složky a následně je jednoduše vypisovat.
Vkládat lze libovolný formát souboru, jen je potřeba si uvědomit, že PHP pracuje se souborem jako s textem, proto je vhodné vkládat jen textové soubory.
Ideální proto je vkládat textové soubory txt
,
html
, md
a podobně.
Po vložení PHP souboru bude automaticky jeho obsah vykonán a bude se zpracovávat stejně, jako kdyby kód na daném místě fyzicky existoval.
Asi každý tvůrce většího webu čistě v HTML mi dá za pravdu, že jeho aktualizace není vůbec snadná. Celý proces webu je zhruba takový:
Není to trochu otrava? PHP umí poměrně snadno kopírovat stejné části textů a zdrojových kódů do různých souborů.
Nyní lze celé menu uložit na př. do souboru menu.html a následně jen uvádět načítací funkci include:
1 include 'menu.html';
Můžete načítat textový soubor, HTML a PHP stránku.
Při načtení PHP stránky se vložené scripty spustí, takže můžete vykonávat i jejich obsah.
Pozor: Pokud vkládáte soubory dynamicky, je dobré si ohlídat, že nemůže dojít k vložení PHP souboru a jeho následného vykonání.
Správně by se měly textové soubory vkládat jako text a patřičně escapovat:
1 echo htmlspecialchars(file_get_contents('menu.html'));
Díky tomu není možné v souboru podstrčit záškodnický kód, který by se spustil.
Někdy potřebujete udělat jednoduchý web, kdy vypadají všechny stránky stejně, ale mění se jen určitá část. Typicky takto vypadají blogy – mají stejnou hlavičku, menu a patičku – jen obsah článků se mění.
Toto se dá řešit tak, že si vytvoříte jednu zobrazovací stránku a na místo článku vložíte funkci include, která bude jednotlivé články načítat ze složky (každý jako extra soubor). Podobně funguje i tento web.
Tento kód předpokládá, že jsou všechny články uloženy ve složce clanky a jejich jméno je ve tvaru ________.html.
1 $article = $_GET['clanek']; // zjištění jména článku 2 3 include 'clanky/' . $article . '.html'; // vypsání článku
Celé to funguje tak, že script přijme jméno článku metodou GET (z URL adresy) a načte soubor tohoto jména. Jak funguje načítání z adresy jsem popisoval v předchozím článku.
1 include 'include-soubor.html';
Obecně se dá říct, že funkce include poměrně dost zjednodušuje práci se stejnými daty a umožňuje jednoduše načítat jiné soubory a takto tvořit dynamický web. Umí ale pouze načítat soubory, ke kterým má přístup přes relativní adresu (tj. u vás na serveru), pokud si chcete načíst vzdálený text (třeba webovou stránku), tak musíte využít funkci file_get_contents, to je ale zatím zbytečně složité.
Sponzorované odkazy
Pomohl Vám tento článek?