PHP A PHP rövidítés jelentése hivatalosan: PHP Hypertext Preprocessor. Ez egy kiszolgáló-oldali parancsnyelv, amit jellemzően HTML oldalakon használnak. A különbség a két nyelv között az, hogy a kiszolgáló PHP esetében nem küldi el az ügyfélnek a parancsokat. Ez azt jelenti, hogy a kiszolgáló oldalán lefut a parancs, azaz feldolgozásra kerülnek az adatok, és csak a végeredmény jut el az ügyfélhez. Tehát az ügyfélhez a PHP kódok kimenete és a megadott HTML elemek együttesen jutnak el. A PHP működéséhez szükséges egy parancsmotor, ami a PHP modulok mögött található, ezt a motort Zend Engine-nek hívják (PHP 5-ben már Zend Engine 2 található). Ez a programokat futtató mag elnevezése. A motort úgy fejlesztették ki, hogy szem előtt tartották a teljesítménynövelést és a bővíthetőséget is. Elterjedtségének oka, hogy szabad forráskódú és hogy bármely operációs rendszer alatt használhatjuk. Telepítése: Linuxra: Apache telepítése: sudo apt-get install apache2 PHP telepítése: sudo apt-get install php5 A kettő együttműködését segítő csomag telepítése: sudo apt-get install libapache2-mod-php5 Indítás/újraindítás/leállítás: Indítás: sudo /etc/init.d/apache2 start Újraindítás: sudo /etc/init.d/apache2 restart Leállítás: sudo /etc/init.d/apache2 stop Bármilyen beállítás megváltoztatása esetén újra kell indítani az apache-ot. Beállítások: Az Apache beállításait a /etc/apache2/apache2.conf fájlban találhatjuk. Ha magyar kódlapot szeretnénk használni alapértelmezettként, akkor ebbe a fájlba kell beírni a végére a következőt: AddDefaultCharset iso-8859-2 (Ha nem az apache-ban szeretnénk átállítani a kódlapot, akkor minden HTML fájl HEAD részébe be kell írni a következőt: <META HTTP-EQUIV="Content-Type" Content="text/html; Charset=iso-8859-2"> <META HTTP-EQUIV="Content-Language" Content="hu"> ) A PHP beállításait a php.ini fájlban találhatjuk meg, ami linux alatt általában a /etc/php5/apache2/ könyvtárban található. Ha mindent beállítottunk, akkor a weboldalnak szánt fájlokat és a szükséges könyvtárakat a /var/www könyvtárba kell elhelyezni. Könyvtárak esetén ügyelni kell a jogosultságokra is! Az itt elhelyezett fájlok elérhetőek a http://localhost/filenev.kit böngészőbe történő beírásával. (Amennyiben nem írunk be külön fájlnevet, alapból a /var/www könyvtárban lévő index.html fájl tartalmát jeleníti meg.) A PHP nyelv Kétféle utasítás létezik a PHP-ben: értékutasítás és jelzőutasítás. Értékutasításnak nevezzük általában az utasítás nevét (bal oldalra a műveleti jeltől). A jelző utasítás lehet pozitív vagy negatív kifejezés. Pozitív lehet az 1, On, Yes és True, negatív pedig a 0, Off, No vagy False.
Több verzió is létezik PHP-ben a nyitó és záró elemek megadására: Nyitó tag Záró tag Alapforma: <?php?> Rövid forma: <??> ASP-s stílusú elem: <% %> Script-es forma: <SCRIPT language= php > </SCRIPT> Ahhoz, hogy a rövid forma használható legyen, a php.ini fájlban található short_open_tag beállítás értékét be kell állítani On-ra (vagy True-ra vagy Yes-re). Ügyelni kell azonban arra, hogy a rövid forma keveredést okozhat, ha XML elemekkel együtt használjuk. Minden utasítás végén ; található. Az alapvető információkat a php-ról és a használt apache-ról kiírathatjuk a phpinfo() függvény segítségével. Kiíratás: A kiíratás print() vagy echo() függvényekkel történik, mindkettő hatása ugyanaz. Használható a zárójelek elhagyásával is, a szövegeket azonban " " vagy ' ' jelek közé kell tenni. A különbség annyi a két jelölés között, hogy ha a " " kiíratásban található változó, akkor az értékét fogja kiírni, míg a ' ' között található változót nem értékeli ki, hanem ugyanabban a formában írja ki a nevét, ahogy a ' ' jelek között van megadva. Megjegyzések megadása: // egy soros megjegyzés, a // jel mögötti részeket nem értelmezi a sorban # egy soros megjegyzés, a # jel mögötti részeket nem értelmezi a sorban /* */ a két jel között minden megjegyzésnek minősül, akár több sor is lehet Változók neve: PHP-ban a változó neve mindig $ jellel kezdődik. A változó nevében szerepelhet betű, szám és az _ jel. Azonban a $ jel utáni következő karakter NEM lehet szám. Pl.: $nev, $szam1, $_123abc Változónak értéket = jellel adhatunk. PHP-ban nem kell külön deklarálni a változót használat előtt, ha értéket adunk neki, akkor azon érték alapján meghatározza a típust. Pl.: $nev = "Kis Béla"; A változó értékének kiíratása történhet a print() és az echo() függvényekkel is. Pl.: print $nev; vagy echo $nev; Változók típusai: Egy változó a következő típusok valamelyikét veheti fel PHP-ben: integer egész szám double valós szám string szöveg boolean logikai típus (igaz vagy hamis értékeket vehet fel) object objektum array tömb resource hivatkozás külső erőforrásra, pl.: adatbázisra NULL Kezdőérték nélküli változó
Egy változó típusát lekérdezhetjük a gettype() vagy a var_dump() függvénnyel, a gettype() csak a típus nevét adja vissza, míg a var_dump() a típus neve után zárójelben megadja a változó hosszát is. Hibakeresésnél, illetve bizonyos esetekben segítség lehet, ha meg tudjuk vizsgálni a változó típusát. Erre külön függvények vannak, melyek közül mindegyik logikai értéket ad vissza, azaz igaz vagy hamis lehet csak az értéke. Ha az adott változó olyan típusú, amelynek megfelelő függvénnyel vizsgáljuk, akkor igaz értéket ad vissza. Típust vizsgáló függvények: megvizsgálja, hogy egész megvizsgálja, hogy objektum is_int() is_object() szám-e a változó értéke megvizsgálja, hogy valós megvizsgálja, hogy tömb is_double() is_array() szám-e a változó értéke megvizsgálja, hogy szöveg-e a megvizsgálja, hogy resource is_string() is_resource() is_bool() változó értéke megvizsgálja, hogy logikai is_null() megvizsgálja, hogy a változó értéke üres-e Változó típusának módosítása: settype() függvénnyel változó neve előtt zárójellel megadni pl.: settype($nev, tipus); (A típusoknál az integert int-ként a booleant bool-ként kell feltüntetni. A többi esetben a teljes típusnevet ki kell írni. Az adott változó típusát megváltoztatja.) pl.: $valami = (int) $nev; (A típusok elnevezése ugyanúgy működik, mint a settype() függvénynél. Az eredeti változóról ($nev) másolatot hoz létre a $valami változóba, és a másolat típusát változtatja csak meg, az eredetiét nem!) Változó típusának átalakítása: Léteznek függvények a változó típusának megváltoztatására: doubleval($nev) a $nev változóban lévő értéket valós számmá (double) alakítja intval($nev) a $nev változóban lévő értéket egész számmá (integer) alakítja strval($nev) a $nev változóban lévő értéket szöveggé (string) alakítja Műveletek Értékadás: egyenlőségjellel (=) Aritmetikai műveletek: összeadás (+), kivonás (-), szorzás (*), osztás (/), maradékképzés (%) Összefűzés: pont (.) pl.: "egy"." kettő" eredménye kiíratásnál: egy kettő Összetett értékadás: $x = $x + 4; utasítás helyett összetett értékadás is használható: $x+=4; Összetett értékadás a következő esetekben létezik: +=, -=, *=, /=, %=,.= Összehasonlítás: = = egyenlő (csak az értéket vizsgálja)!= nem egyenlő = = = azonos (értéke és típusa is) >, >= kisebb, kisebb egyenlő >, >= nagyobb, nagyobb egyenlő
Logikai műveletek: and vagy && és művelet, az and alacsonyabb prioritású or vagy vagy művelet, az or alacsonyabb prioritású xor kizáró vagy! nem művelet Egyéb inkrementálás és dekrementálás $x++ vagy ++$x $x-- vagy --$x pl.: $x=3; $x+=1; $x++<4; (igaz lesz, mert előbb vizsgál, utána emel) ++$x;<4 (itt hamis lesz, mert $x értéke előbb emelkedik) Állandók: Létrehozás: define ("NEVE", erteke); Print "Helló ".NEVE; Ha a define-ban 3. argumentumnak true-t adunk meg, akkor nem számít a meghívásnál a kis és nagybetű megadása. Vezérlési szerkezetek 1. Elágazás else ággal: else { else if-el (elseif egybe is írható) else if { else { switch (egyszerű változót vizsgálva, pl.: string, int, double) switch (kifejezés) { case érték1: break; case érték2: break; default: //alap Ha a break kimarad, akkor nem lép ki a switch-ből, hanem folytatja a vizsgálatokat, ami tovább módosíthatja a kapott értéket.
?-lel: (feltétel)?érték_ha_igaz:érték_ha_hamis; (általában változónak adjuk át a kiértékelt igaz vagy hamis értékeket) 2. Ciklusok While: (elöltesztelős ciklus) While (feltétel) { Ebben az esetben kell egy számláló, amit a ciklusban növelni/csökkenteni kell, és a kód csak akkor fut le, ha a feltétel teljesül. Do..while: (hátultesztelős ciklus) Do { while (feltétel); Itt a kód egyszer lefut mindenképpen, majd azt vizsgálja a ciklus, hogy folytatódjon-e. For: (növekményes vagy léptetős ciklus) For (kezdőérték; feltétel; módosítás) { { A zárójeles argumentumok elhagyhatóak. Ha pl. korábban megadtuk a kezdőértéket, akkor az első részt kihagyva is használhatjuk. Foreach: kifejezetten tömbökre kitalált ciklus foreach ($tombnev as $ertek){