Hlavní navigace

Schopnosti, možnosti a vlastnosti

Sdílet

A jak se v něm programuje? Musím říct, že především rychle. PHP jakožto skriptovací jazyk tolik nebazíruje na typech, proměnné ani funkce nemusíte deklarovat, jednoduše je používáte. Když použiji proměnnou $promenna, je jenom na mně, jestli do ní uložím číselnou hodnotu, řetězec, pole nebo objekt (a jestli tak k ní budu i přistupovat). Konverze mezi základními datovými typy (pokud to lze) je automatická, takže se při programování spíš soustředíte na samotný algoritmus než na to, jak jej v programovacím jazyku vyjádřit.

PHP může být provozováno na různých platformách včetně Linuxu, mnoha variant Unixu (včetně HP-UXu, Solarisu či OpenBSD), Microsoft Windows, Mac OS X, RISC OS a dalších. Dorozumí se bez problémů s mnoha dnešními web-servery a pro většinu z nich lze PHP zkompilovat jako modul (se zbytkem spolupracuje na základě CGI). Bezproblémové je použití PHP se servery:

  • Apache
  • Microsoft Internet Information Server
  • Personal Web Server
  • Oreilly Website Pro Server
  • Caudium
  • Xitami
  • OmniHTTPd
  • Netscape a iPlanet servery
  • …a dalšími

Výstupem z PHP je standardně soubor HTML, ale nejste omezeni jen na tento formát. Můžete psát skripty, jejichž výsledkem bude text ve formátu XHTML, XMLnebo dokonce PDF. PHP umí generovat i obrázky nebo dokonce animace Flash. Znamená to tedy, že pomocí PHP můžete například udělat skript, který na požádání vytvoří graf vytížení systému v podobě GIF souboru. (Abyste tomu rozumněli, vytvořené obrázky se nikam neukládají, jsou přímo výsledkem vykonání skriptu.)

V PHP je možno psát podle procedurálního paradigmatu nebo objektově. Velikou výhodou jazyka je množství vestavěných knihovních funkcí:

  • matematické funkce pro práci s libovolně přesnými čísly
  • práce s kompresí ZIP (jen ke čtení), Bzip2
  • kalendářové funkce, funkce pro datum a čas
  • podpora COM ve Windows
  • funkce pro práci se soubory
  • propojení PHP s Javou
  • kryptovací a hashovací funkce
  • síťové funkce
  • funkce pro přístup na FTP
  • HTTP funkce
  • funkce pro IMAP, POP3, NNTPa odesílání elektronické pošty
  • funkce pro práci s procesy, spouštění programů
  • podpora semaforů, sdílené paměti a meziprocesorové komunikace
  • funkce standardu POSIX
  • regulární výrazy
  • Shockwave Flash
  • různé funkce pro práci s řetězci
  • XML, XSLT, DOM XML
  • …a mnoho dalších (tč. celkem kolem 111 oblastí)

A pokračujme ve výčtech. Velkým kladem PHP je, že zvládá spolupráci s mnoha databázemi. V současnosti přímo podporuje následující databázové systémy:

  • Adabas D
  • dBase
  • Direct MS-SQL
  • Empress
  • FilePro (jen pro čtení)
  • FrontBase
  • Hyperwave
  • IBM DB2
  • Informix
  • Ingres
  • InterBase
  • mSQL
  • MySQL
  • Oracle (OCI7 a OCI8)
  • Ovrimos
  • PostgreSQL
  • Solid
  • Sybase
  • Unix dbm
  • Velocis

Navíc je pro PHP vyvinuta schopnost práce s ODBC (Open DataBase Connection), takže se z PHP můžete připojit k jakékoliv další databázi podporující tento světový standard.

Napsání webových stránek pracujících s nějakým databázovým systémem je velice jednoduché. Pro ilustraci zde uvedu bohatě komentovaný příklad získání dat z MySQL:

<?php
// připojení k MySQL (v případě neúspěchu vypíše chybové
// hlášení a skončí)
$link = mysql_connect(‚lo­calhost‘, ‚uzivatel‘, ‚heslo‘)
or die(‚Nemohu se připojit k MySQL!‘);

// výběr konkrétní báze dat
mysql_select_db(‚pra­ce‘)
or die(‚Nepodařilo se vybrat bázi dat!‘);

// realizace SQL dotazu (získání všech dat z tabulky
// „pracovnici“, kteří se jmenují „Josef“)
$vysledek = mysql_query(
‚SELECT * FROM pracovnici WHERE jmeno=„Josef“‘);

// cyklus, ve kterém se v každém kroku zpracuje jeden řádek
// získaných dat
while ($radek = mysql_fetch_a­rray($vysledek)) {
// tisk příjmení
echo $radek[‚prijmeni‘] . ‚<BR>‘;
}
 ?>

A jak se v něm programuje? Musím říct, že především rychle. PHP jakožto skriptovací jazyk tolik nebazíruje na typech, proměnné ani funkce nemusíte deklarovat, jednoduše je používáte. Když použiji proměnnou $promenna, je jenom na mně, jestli do ní uložím číselnou hodnotu, řetězec, pole nebo objekt (a jestli tak k ní budu i přistupovat). Konverze mezi základními datovými typy (pokud to lze) je automatická, takže se při programování spíš soustředíte na samotný algoritmus než na to, jak jej v programovacím jazyku vyjádřit.

Jelikož se nikde nic nealokuje (lépe: PHP si vše alokuje samo), nemusíte si ani hlídat velikosti místa pro proměnné: do řetězce lze stejně jednoduše uložit jeden znak jako 3 kB textu a totéž platí pro pole: rozhodnete se uprostřed programu přidat do pole další položku? Není nic snazšího: jednoduše ji použijete v přiřazovacím příkazu a interpret PHP se sám postará o to, aby pro ni bylo v paměti místo.

Takových a podobných dalších vymožeností typických pro interpretované jazyky je v PHP spousta. Velice silným nástrojem (ač to na první pohled možná nevypadá) je možnost používat jako indexy pole kromě jakýchkoliv čísel i řetězce nebo dokonce hodnotu jakéhokoliv typu. Rázem tak dostáváte do rukou mocný nástroj hashovacích tabulek (nebo asociativních polí, chcete-li), který je dobrým pomocníkem na každém kroku.

<?php
// Proměnné se nedeklarují
$pocet = 3;

// Pokud použijete číselnou proměnnou v řetězcovém kontextu,
// PHP její hodnotu na řetězec automaticky převede
// Operátor tečky („.“) znamená spojení řetězců do jednoho.
$retezec = ‚Máme doma ' . $pocet . ' prasátka.‘;

// Vytvoření nového pole
$pole = array(‚bílá‘, ‚modrá‘, ‚zelená‘);

// Přidání další položky do pole
$pole[] = ‚černá‘;

// Přístup k položkám pole
$pole[0] = $pole[1];

// Indexem pole může být i řetězec
$pole[‚počet prasátek‘] = $pocet;
 ?>