PHP

Co je PHP? Kompletní průvodce pro začátečníky i pokročilé

PHP je jeden z nejpoužívanějších programovacích jazyků pro tvorbu webových stránek. Pokud jste někdy navštívili dynamický web (například e-shop, sociální síť nebo blog), je vysoká šance, že za ním stojí právě PHP. V tomto článku si vysvětlíme, co PHP je, jak funguje, k čemu se používá a jak s ním začít.


1. Co je PHP? Základní definice

PHP (Hypertext Preprocessor) je server-side skriptovací jazyk, který slouží k vytváření dynamického obsahu na webu.

Co to znamená?

  • Server-side = Kód se spouští na serveru (ne v prohlížeči uživatele).
  • Skriptovací jazyk = Není nutné ho kompilovat (překládat do strojového kódu), ale interpretuje se přímo při běhu.
  • Dynamický obsah = Stránky se generují na základě dat (např. uživatelské přihlášení, produkty v e-shopu, komentáře).

Příklad: Jak PHP funguje v praxi

Představte si, že navštívíte e-shop. Když kliknete na kategorii "Mobilní telefony", server:

  1. Zpracuje váš požadavek (PHP skript).
  2. Vyhledá v databázi všechny mobily.
  3. Vygeneruje HTML stránku s těmito produkty.
  4. Pošle ji do vašeho prohlížeče.

Bez PHP by musel správce webu ručně vytvářet statické HTML stránky pro každý produkt – což je při stovkách položek nemožné.


2. K čemu se PHP používá? Hlavní využití

PHP je univerzální jazyk, který se používá pro:

Využití Příklad
Tvorba dynamických webů Blogy (WordPress), e-shopy (PrestaShop, WooCommerce), sociální sítě (Facebook původně používal PHP).
Práce s databázemi Ukládání uživatelských účtů, objednávek, článků (např. MySQL, PostgreSQL).
Zpracování formulářů Registrace, přihlášení, kontaktní formuláře.
Generování PDF/Excel Faktury, reporty, export dat.
API a mikroslužby Komunikace mezi systémy (např. platební brány, CRM).
Automatizace úloh Odesílání e-mailů, zpracování souborů na serveru.

Konkrétní příklad: Registrace uživatele

  1. Uživatel vyplní registrační formulář (jméno, e-mail, heslo).
  2. PHP skript:
    • Zkontroluje, zda e-mail není již zaregistrovaný.
    • Uloží data do databáze.
    • Odešle potvrzovací e-mail.
  3. Uživatel obdrží zprávu a může se přihlásit.

3. Jak PHP funguje? Technické principy

A) Server-side zpracování

  • PHP kód je součástí .php souborů (např. index.php).
  • Když uživatel požádá o stránku, server nejprve zpracuje PHP kód a poté odešle čistý HTML do prohlížeče.

Příklad kódu (index.php):

<?php
$jmeno = "Michal";
echo "<h1>Ahoj, $jmeno!</h1>"; // Výstup: <h1>Ahoj, Michal!</h1>
?>
  • Výsledek v prohlížeči: <h1>Ahoj, Michal!</h1> (uživatel nevidí PHP kód, pouze HTML).

B) Interakce s databázemi

PHP často komunikuje s MySQL, PostgreSQL nebo MongoDB pro ukládání a načítání dat.

Příklad: Načtení článků z databáze

<?php
// Připojení k databázi
$conn = new mysqli("localhost", "uzivatel", "heslo", "blog_db");

// Dotaz na články
$result = $conn->query("SELECT * FROM clanky");

// Zobrazení článků
while ($row = $result->fetch_assoc()) {
    echo "<h2>" . $row['nadpis'] . "</h2>";
    echo "<p>" . $row['obsah'] . "</p>";
}
?>

C) Tvorba dynamického obsahu

PHP umožňuje měnit obsah stránky na základě:

  • Uživatelských dat (přihlášený vs. nepřihlášený).
  • Času (např. "Dnesní nabídka").
  • Parametrů v URL (např. produkt.php?id=123).

Příklad: Zobrazení aktuálního data

<?php
echo "Dnes je: " . date("d.m.Y"); // Výstup: "Dnes je: 15.10.2024"
?>

4. PHP vs. jiné technologie (JavaScript, Python, Node.js)

Technologie Typ Kde běží Využití Příklady
PHP Server-side Na serveru Dynamické weby, databáze, API WordPress, Laravel
JavaScript Client-side V prohlížeči Interaktivita, animace, Single-Page Apps (SPA) React, Vue.js
Python Server-side Na serveru Data science, AI, web (Django/Flask) Instagram, Netflix
Node.js Server-side Na serveru (JS) Rychlé API, real-time aplikace LinkedIn, PayPal

Kdy použít PHP?

Potřebujete rychle vyvinout klasický web (blog, e-shop, firemní stránky). ✅ Chcete jednoduchou integraci s databázemi (MySQL, PostgreSQL). ✅ Pracujete s WordPressem nebo jiným CMS (většina z nich používá PHP). ✅ Hledáte jazyk s velkou komunitou a dokumentací.

Nevhodné pro:

  • Vysoce výkonné aplikace (PHP není tak rychlé jako Go nebo Rust).
  • Mobile aplikace (PHP se nepoužívá pro Android/iOS).
  • Desktopové programy (PHP je primárně pro web).

5. Jak začít s PHP? Průvodce pro začátečníky

Krok 1: Instalace PHP

PHP potřebujete nainstalovat na lokální počítač (pro vývoj) nebo webový server (pro produkci).

Možnosti instalace:

Metoda Popis Doporučeno pro
XAMPP/WAMP Balíček s Apache, PHP, MySQL (jednoduchá instalace). Začátečníci
Docker Kontejnerizace (PHP + databáze v izolovaném prostředí). Pokročilí vývojáři
Manuální instalace Ruční nastavení PHP na Linux/Windows + webový server (Apache/Nginx). Experti

🔹 Doporučení pro začátečníky: Stáhněte XAMPP (https://www.apachefriends.org/) a nainstalujte ho. Obsahuje vše potřebné (Apache, PHP, MySQL).

Krok 2: První PHP skript

  1. Vytvořte soubor index.php ve složce htdocs (u XAMPP).
  2. Napište jednoduchý kód:
    <?php
    echo "Ahoj, světe! Dnes je " . date("d.m.Y");
    ?>
    
  3. Spusťte prohlížeč a zadejte http://localhost/index.php.

🔹 Očekávaný výstup: Ahoj, světe! Dnes je 15.10.2024

Krok 3: Základní syntaxe PHP

Koncept Příklad Výsledek
Proměnné $jmeno = "Anna"; Uloží text "Anna" do $jmeno
Podmínky if ($vek >= 18) { echo "Plnoletý"; } Zobrazí "Plnoletý", pokud je věk ≥ 18
Smyčky for ($i = 1; $i <= 5; $i++) { echo $i; } Vypíše: 12345
Funkce function secti($a, $b) { return $a + $b; } secti(2, 3) vrátí 5
Pole (arrays) $ovoce = ["jablko", "banán"]; echo $ovoce[0]; Vypíše "jablko"

Krok 4: Práce s formuláři

Příklad: Jednoduchý kontaktní formulář

  1. HTML formulář (formular.html):

    <form action="zpracuj.php" method="POST">
        <input type="text" name="jmeno" placeholder="Vaše jméno">
        <input type="email" name="email" placeholder="Váš e-mail">
        <textarea name="zprava" placeholder="Vaše zpráva"></textarea>
        <button type="submit">Odeslat</button>
    </form>
    
  2. PHP skript (zpracuj.php):

    <?php
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        $jmeno = $_POST["jmeno"];
        $email = $_POST["email"];
        $zprava = $_POST["zprava"];
    
        echo "Děkujeme, $jmeno! Vaše zpráva byla odeslána.";
        // Zde by následovalo uložení do databáze nebo odeslání e-mailu
    }
    ?>
    

Krok 5: Práce s databází (MySQL)

  1. Vytvořte databázi (např. přes phpMyAdmin v XAMPP).
  2. Připojte se k databázi v PHP:
    <?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "mojedb";
    
    // Připojení
    $conn = new mysqli($servername, $username, $password, $dbname);
    
    // Kontrola připojení
    if ($conn->connect_error) {
        die("Připojení selhalo: " . $conn->connect_error);
    }
    
    // Vložení dat
    $sql = "INSERT INTO uzivatele (jmeno, email) VALUES ('Jan', 'jan@example.com')";
    if ($conn->query($sql) === TRUE) {
        echo "Úspěšně vloženo!";
    } else {
        echo "Chyba: " . $conn->error;
    }
    
    $conn->close();
    ?>
    

6. PHP frameworky – proč je používat?

Frameworky usnadňují vývoj tím, že poskytují: ✅ Předpřipravenou strukturu kódu (nemusíte vše psát od začátku). ✅ Bezpečnostní funkce (ochrana před SQL injection, XSS). ✅ Rychlejší vývoj (knihovny pro běžné úlohy).

Nejpopulárnější PHP frameworky

Framework Popis Vhodné pro
Laravel Moderní, elegantní framework s bohatou dokumentací. Komplexní weby, API
Symfony Vysoce modulární, vhodný pro velké projekty. Enterprise aplikace
CodeIgniter Lehký, rychlý, snadný na naučení. Menší projekty
WordPress CMS (Content Management System) postavený na PHP. Blogy, firemní weby

Příklad: Instalace Laravelu

  1. Nainstalujte Composer (https://getcomposer.org/).
  2. Spusťte příkaz:
    composer create-project --prefer-dist laravel/laravel moj-projekt
    
  3. Spusťte vývojový server:
    php artisan serve
    
  4. Otevřete http://localhost:8000 v prohlížeči.

7. Bezpečnost v PHP – základní pravidla

PHP je často terčem útoků, pokud není správně zabezpečen. Základní bezpečnostní opatření:

Hrozba Řešení
SQL Injection Používejte prepared statements (PDO nebo MySQLi).
XSS (Cross-Site Scripting) Escapujte výstup pomocí htmlspecialchars().
CSRF (Cross-Site Request Forgery) Používejte CSRF tokeny (v frameworkech jako Laravel automaticky).
Upload nebezpečných souborů Ověřujte typy souborů a přejmenovávajte je.
Slabé hesla Hashujte hesla pomocí password_hash().

Příklad: Ochrana před SQL InjectionŠpatně (zranitelné):

$sql = "SELECT * FROM uzivatele WHERE jmeno = '" . $_POST["jmeno"] . "'";

Správně (prepared statement):

$stmt = $conn->prepare("SELECT * FROM uzivatele WHERE jmeno = ?");
$stmt->bind_param("s", $_POST["jmeno"]);
$stmt->execute();

8. Budoucnost PHP – je ještě relevantní?

PHP existuje od roku 1994 a někteří ho považují za zastaralý. Realita je ale jiná:

PHP 8.x přineslo významné zlepšení:

  • JIT kompilace (rychlejší výkon).
  • Typová bezpečnost (lepší kontrola chyb).
  • Moderní syntaxe (např. match místo switch).

Obrovská komunita a podpora:

  • 80 % webů používá PHP (včetně WordPressu, který pohání 43 % všech webů).
  • Aktivní vývoj (nové verze každý rok).

Vhodné pro:

  • Malé a střední weby (rychlý vývoj, nízké náklady).
  • Legacy systémy (mnoho firem stále používá PHP).
  • Freelancery a agentury (velká poptávka po PHP vývojářích).

Nevýhody:

  • Konkurence modernějších jazyků (Python, JavaScript/Node.js).
  • Nekonzistentní syntaxe (některé funkce mají neintuitivní názvy).
  • Pověst "špatného kódu" (mnoho starých, neudržovaných projektů).

9. Zdroje pro další učení

Oficiální dokumentace a tutoriály

Knihy

  • PHP for Beginners (David Carr)
  • Modern PHP: New Features and Good Practices (Josh Lockhart)
  • Laravel: Up &amp; Running (Matt Stauffer)

Kurzy (zdarma i placené)

Komunita a fóra


Závěr: Má smysl učit se PHP v roce 2024?

Ano, pokud: ✔ Chcete rychle vytvářet weby (blog, e-shop, firemní stránky). ✔ Pracujete s WordPressem nebo jiným PHP CMS. ✔ Hledáte práci jako webový vývojář (PHP je stále poptávané). ✔ Chcete porozumět server-side programování před přechodem na jiné jazyky.

Ne, pokud: ✖ Plánujete výkonné aplikace (lepší volba: Go, Rust, Node.js). ✖ Chcete se specializovat na mobile nebo desktopové aplikace. ✖ Preferujete modernější syntaxi (Python, JavaScript).


APA Citace (Zdroje)


Autor: Michal Binka Datum poslední úpravy: 15. října 2024