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:
- Zpracuje váš požadavek (PHP skript).
- Vyhledá v databázi všechny mobily.
- Vygeneruje HTML stránku s těmito produkty.
- 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
- Uživatel vyplní registrační formulář (jméno, e-mail, heslo).
- PHP skript:
- Zkontroluje, zda e-mail není již zaregistrovaný.
- Uloží data do databáze.
- Odešle potvrzovací e-mail.
- 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í
.phpsouborů (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
- Vytvořte soubor
index.phpve složcehtdocs(u XAMPP). - Napište jednoduchý kód:
<?php echo "Ahoj, světe! Dnes je " . date("d.m.Y"); ?> - 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ář
-
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> -
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)
- Vytvořte databázi (např. přes phpMyAdmin v XAMPP).
- 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
- Nainstalujte Composer (https://getcomposer.org/).
- Spusťte příkaz:
composer create-project --prefer-dist laravel/laravel moj-projekt - Spusťte vývojový server:
php artisan serve - Otevřete
http://localhost:8000v 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ř.
matchmístoswitch).
✅ 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 & 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)
- The PHP Group. (2024). PHP: Hypertext Preprocessor. https://www.php.net/
- W3Schools. (2024). PHP Tutorial. https://www.w3schools.com/php/
- Laravel. (2024). Laravel Documentation. https://laravel.com/docs
- Stack Overflow. (2024). PHP Questions. https://stackoverflow.com/questions/tagged/php
- Wikipedia. (2024). PHP. https://en.wikipedia.org/wiki/PHP
Autor: Michal Binka Datum poslední úpravy: 15. října 2024
