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.).

 

« Obsah učebnice