Vkládání souborů
PHP obsahuje dva příkazy, které načítají a provádí kód ze zadaných souborů. To nám umožňuje psát vícenásobně použitelný kód a uložit ho centrálně v souboru, který budeme načítat do více našich skriptů.
Jedná se o příkazy include a require. Tyto dva příkazy jsou zcela totožné, kromě toho, jak se zachovají v případě, že soubor, který se pokoušíte vložit, neexistuje nebo nejde otevřít. Příkaz include produkuje Warning (varování) a skript se pokusí běžet dál, zatímco require skončí s chybou typu Fatal Error. Nebojte ve vašich skriptech použít require, pokud chcete, aby nepřítomnost souboru zastavila zpracování stránky. Je lepší stránku vůbec nezobrazit, než ji zobrazit nefunkční a plnou chybových hlášení díky chybějícímu kódu.
Syntaxe těchto příkazů může vypadat následovně:
<?php
include 'vlozit.php';
/* Lze předat i proměnnou. */
$Soubor = 'vlozit.php';
include $Soubor; // soubor ve stejném adresáři
include 'adresar/'.$Soubor; // soubor v podadesáři
include '../'.$Soubor; // soubor v nadřazeném adresáři
?>
Příkazy include a require předpokládají, že vkládané soubory jsou v kódu HTML, nikoliv PHP, tudíž pokud je vkládaný soubor skript PHP, musí být ohraničen PHP tagy.
Nyní si vytvoříme dva skripty - deklarace.php a hlavni.php. Skript hlavni.php pak spustíme.
Zdrojový kód skriptu deklarace.php:
<?php
$Ovoce = 'jablko';
$Barva = 'zelené';
?>
Zdrojový kód skriptu hlavni.php:
<?php
echo 'Vidím ', $Barva, ' ', $Ovoce;
// Způsobí chyby, proměnné neexistují.
include 'deklarace.php';
// Vložíme soubor s deklarovanými proměnnými.
echo 'Vidím ', $Barva, ' ', $Ovoce;
// Vypíše: Vidím zelené jablko
?>
Vkládat lze kromě lokálních souborů i soubory vzdálené, a to pomocí URL (přes HTTP). Musí to však povolovat konfigurační soubor php.ini, konkrétně direktiva:
allow_url_fopen = On
<?php
include 'http://www.server.cz/soubor.txt';
// Vloží do stránky obsah vzdáleného souboru.
?>
PHP dále obsahuje příkazy include_once a require_once. Dělají to samé, jen s tím rozdílem, že pokud už byl kód ze souboru dříve vložen do skriptu, nebude znovu vkládán. Jak název napovídá, bude vložen právě jednou. Tyto příkazy by se měly používat v případech, kde by mohl být během provádění skriptu tentýž soubor vložen vícekrát, a přitom chcete zajistit právě jedno vložení (je třeba se vyhnout redeklaraci konstant, novému přiřazení hodnot atd.).