Začínáme prakticky

Vytvoříme si první jednoduchý skript, který nebude dělat nic jiného, než vytvářet přímočarý výstup. Použijeme k tomu jazykový konstruktor echo. Příkaz echo není funkce, takže u něj není nutné používat závorky. Dokonce, pokud se pokusíte vypsat více parametrů v závorce, skončíte u chybového hlášení. Text, který chceme vypsat, uzavřeme do apostrofů. Někteří programátoři používají místo echo podobný příkaz print(), to je funkce, takže text ještě uzavřeme do závorek. Následující 2 řádky mají stejný efekt.

<?php

  echo 'Dnes je krásně.';
  print (
'Dnes je krásně.');

?>

Pokud používáte ve vašem editoru kódování UTF-8, pravděpodobně se vám tento text s výchozím nastavením prohlížeče nezobrazí úplně správně. Máte několik možností. Buď ve svém prohlížeči nastavte z hlavního menu: Zobrazit > Kódování > UTF-8 (Unicode), nebo skript začleňte do HTML stránky, která má pomocí META-tagu nastavené správné kódování, to znamená mít v tagu <head>:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Případně můžete úplně na začátek každého skriptu připsat následující kód:

<?php
  header
('Content-Type: text/html; charset=UTF-8');
?>

V tomto případě nesmí být před prvním otevíracím tagem PHP vůbec nic, ani HTML, výstup PHP, dokonce ani mezera, způsobilo by to chybu a skript by se nevykonal.

PHP lze také nastavit tak, že bude posílat vždy stránku v kódování UTF-8, pokud neurčíme jinak, a to v konfiguračním souboru php.ini, za pomoci direktivy:

default_charset = "utf-8"

Pokud jste si vybrali tuto možnost, nezapomeňte restartovat webový server, aby se změny projevily!

Po provedení jedné z těchto možností by se mělo zobrazit vše v pořádku. Nyní zkusíme vypsat kromě prostého textu také HTML. To se dělá naprosto stejně. Všimněte si, že zatím používáme v PHP pro uzavření řetězce, který se má vypsat, apostrofy, zatímco hodnoty HTML tagů jsou v uvozovkách, takže se navzájem nekříží.

<?php
  
echo '<a href="main.php">Domů</a>';
?>

Problém by nastal, kdybychom místo aspostrofů (v PHP) a uvozovek (v HTML) použili pouze a jen jedno z nich. Příkaz echo by si vzal pouze první část řetězce, která by byla ohraničená dvojící těchto znaků a zbytek by byl brán jako další kód v PHP, který by byl pravděpodobně nepřijatelný.

<?php
  
echo '<a href='main.php'>Domů</a>';
  
// Špatně!
?>

Řetězec předaný příkazu echo bude náhle ukončen za znakem = a skript vypíše chybu, protože další text jsou pro PHP nesmysly. Řešení je na snadě, vrátit se k prvnímu příkladu. Může ale nastat situace, kdy v HTML kódu budou vnořené aspostrofy, které nemůžeme přepsat na uvozovky, například ve vnořeném JavaScriptovém kódu.

<html>
<?php
  
echo '<body onload="javascript:window.alert(\'Dynamicky generované HTML s JavaScriptem\');"></body>';
?>
</html>

Zde přidáme před vnořené apostrofy zpětné lomítko, kterému se říká escape. Escape ruší speciální význam následujícího znaku, takže tyto dva apostrofy PHP nebude brát jako ukončení řetězce, ale jako obyčejné znaky, které se jednoduše odešlou prohlížeči.

Aspostrof není jediným znakem, který se opatřuje zpětným lomítkem. Zde je tabulka dalších několika "problémových" znaků.

Escape sekvence Význam
\' apostrof
\" uvozovky
\\ zpětné lomítko
\$ znak "dolar"
\n nový řádek
\r přechod na začátek řádku
\t tabulátor

Všechny sekvence kromě apostrofu mají ale význam pouze tehdy, když příkazu echo předáme řetězec v uvozovkách, o tom ale podrobněji až někdy příště.

 

« Obsah učebnice