Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

PHP alapok Farkas Tamás (blaq)

Hasonló előadás


Az előadások a következő témára: "PHP alapok Farkas Tamás (blaq)"— Előadás másolata:

1 PHP alapok Farkas Tamás (blaq)

2 2 Tartalom Bevezető A nyelv alapjai Form-kezelés Session-kezelés Átlátható kód Template-ek

3 3 Bevezető Mitől dinamikus egy weboldal? Böngésző Webszerver Apache Fájlrendszer HTTP statikus 1 2 A böngésző elküldi a kérést A webszerver ellenőrzi a jogosultságokat, beolvassa a fájlt, majd visszaküldi a böngészőnek A böngésző fogadja a fájlt, és megjeleníti a weboldalt

4 4 Bevezető Mitől dinamikus egy weboldal? Böngésző Webszerver Apache Szkript-értelmező PHP Fájlrendszer HTTP A böngésző elküldi a kérést A webszerver ellenőrzi a jogosultságokat, beolvassa a fájlt és továbbítja az értelmezőnek VAGY megmondja az értelmezőnek, hogy mit kell beolvasnia A értelmező feldolgozza a fájlt, és visszaadja a webszervernek A webszerver kiküldi a generált fájlt A böngésző fogadja a fájlt, és megjeleníti a weboldalt Fájlrendszer mod_phpCGI

5 5 Bevezető Mi az a PHP és hogyan történik az értelmezés? „PHP: Hypertext Preprocessor” Általános célú szkriptnyelv Weboldalak generálása, HTML-be ágyazva (szerveroldali szkript) Bármi más generálása… Hello world! Példa -n belüli részeket programként értelmezi, többit változatlanul hagyja

6 6 Bevezető Fejlesztői környezet kialakítása Legegyszerűbb: unicorn.sch.bme.hu > ~/public_html Ingyenes tárhelyszolgáltatók Otthoni környezet: Miből érdemes tanulni? PHP manual :) (online doksi kommentekkel) (offline kézikönyv) https://kszk.sch.bme.hu/twiki/bin/view/Webproj/WebprojDoksik PHPMiniHowTo by Jocó (biztonság)https://kszk.sch.bme.hu/twiki/bin/view/Webproj/WebprojDoksik …

7 7 A nyelv alapjai Tartalom Szintaxis Típusok Állandók Operátorok Vezérlési szerkezetek Függvények Osztályok, objektumok Referenciák

8 8 Szintaxis PHP-módba kerülés:,, … Változó jelölése: $valtozo betűk, számjegyek, aláhúzás; nem kezdődhet számmal Tömb: $tomb[index] Utasítások elválasztása pontosvesszővel: echo ”Üzenet”; Programblokk kapcsoszárójelben: { … } Megjegyzések: Típusok lehetséges értékei a következő slide-okon

9 9 Típusok Változók illetve értékek típusát általában nem adjuk meg explicit módon Értelmező hozzárendel egy típust a környezetének megfelelően Szükség esetén automatikus típuskonverzió Típus lekérdezése, ellenőrzése: gettype($valtozo); is_type($valtozo); Cast-olás: $ize = (int) $bigyo; settype($valami, "string");

10 10 Típusok Logikai típus ( boolean ) true (igaz), false (hamis) decimális szám: $a = 1234; negatív szám: $a = -123; oktális szám: $a = 0123; hexadecimális szám: $a = 0x1A; Egész szám ( integer ) Lebegőpontos szám ( float ) $a = 1.234; $a = 1.2e3; $a = 7E-10; Egy értéket vehet fel: NULL Egy változó értéke NULL ha: - NULL -ra állítjuk - még nem kapott értéket - unset() -tel töröltük NULL ( NULL ) Speciális típus Referencia külső erőforrásra pl.: SQL lekérdezés eredménye Külön függvényekkel tudunk hasznos adatot kinyerni belőle Erőforrások

11 11 Típusok 1.Aposztróffal: ’szoveg’ \’ : aposztróf 2.Idézőjellel: ”egy sor\n” \r : kocsivissza \n : újsor \t : tab \\ : visszaper \$ : dollár \” : idézőjel (heredocnál nem kell) \[0-7]{1,3} : oktális kar. kód \\x[0-9A-Fa-f]{1,2} : hexa 3.Heredoc: $s = <<

12 12 Típusok Üres tömb létrehozása: $tomb = array(); (inicializálás!) Tömb kulcsa lehet nemnegatív egész és sztring ( asszociatív tömb ) Kezdőérték: $szorakozohelyek = array( ’Drönk’, ’Banális Közhely’, ’Under The Bridge’, ); Kezdőérték kulccsal: $szamok = array( ’egy’ => 1, ’kettő’ => 2 ); Tömb ( array ) Hogy érjük el? echo($szorakozohelyek[0]); $i=’egy’; echo($szamok[$i]); Új elem felvétele: $szamok[’három’]=3; $szorakozohelyek[]=’Ráday’; Módosítás: $szamok[’három’]=4; Törlés: unset($szamok[’három’]); Tömbelemek kezelése

13 13 Típusok $gyumolcsok = array ( ’szórakozóhelyek’ => array ( ’Drönk’, ’Banális Közhely’, ’Ráday’ ), ’gyümölcsök’ => array ( 1 => ’alma’, 2 => ’körte’, ’narancs’ ), array ( $a, $b => $c ) ); Többdimenziós tömbök

14 14 Típusok 0, 0.0, ””, ”0”, array(), NULL : false boolean Számból sztring: 3.14 → ”3.14”, * → ”1E+16” Sztringből szám: ha a sztring elején értelmes szám szerepel akkor ez lesz az értéke, egyébként 0 ”1 kutya” → 1, ”php 5.0” → 0 boolean → string : ”true”, ”false” boolean → int : false → 0, true → 1 Néhány példa automatikus típuskonverzióra

15 15 Állandók Állandókat a define() függvénnyel hozhatunk létre Nem módosíthatók/törölhetők Csak skalár értéket kaphatnak (boolean, integer, float, string) Elnevezés megállapodás szerint csupa nagybetű szokott lenni $ nélkül kell rá hivatkozni, ha egy változó tartalmazza a konstans nevét akkor a constant() függvény használható A get_defined_constants() függvénnyel lekérdezhetjük hogy milyen állandók vannak beállítva. Tömbbel tér vissza: ’állandó’=>érték

16 16 Operátorok Részletes lista és precedencia: Ld. Manual C operátorai: %, ++, *=,... Összehasonlítás típusvizsgálattal: ===, !== Csak akkor igaz/hamis, ha az operandusok típusa is megegyezik/eltér 1===”1” //hamis, nem azonos array()!==false //igaz Hibakezelő operátor: $ertek Nem dob „notice”-t, ha például $kulcs nincs beállítva

17 17 Vezérlési szerkezetek Feltételes utasítás if (feltetel) utasitas; if (feltetel) { utasitas1; utasitas2;... utasitasn; } Elágazás if (feltetel) { utasitas1; } else { utasitas2; } Elágazás több irányba if (feltetel1) { utasitas1; } elseif (feltetel2) { utasitas2; }... elseif (felteteln) { utasitasn; } else { utasitas; }

18 18 Vezérlési szerkezetek Elágazás több irányba egy változó értékei alapján switch ($valtozo) { case ertek1: utasitas1; break; case ertek2: utasitas2; break;... case ertekn: utasitasn; break; default: utasitas; } switch ($valtozo) { case ertek1: case ertek2: case ertek3: utasitas; break; case ertek5; case ertek4: utasitas; break; default: utasitas; }

19 19 Vezérlési szerkezetek Elöltesztelő ciklus while (feltetel) utasitas; while (feltetel) { utasitas1; utasitas2;... utasitasn; } do utasitas while (feltetel) do { utasitas1; utasitas2;... utasitasn; } while (feltetel); Hátultesztelő ciklus continue :következő iterációra lép break :kilép a ciklusból

20 20 Vezérlési szerkezetek Ciklus for (kif1; kif2; kif3) utasitas; for (kif1; kif2; kif3) { utasitas1; utasitas2;... utasitasn; } Ekvivalens* elöltesztelő ciklus kif1: inicializálás, egyszer hajtódik végre kif2: minden iteráció előtt megvizsgálja, true érték esetén megy tovább kif3: minden iteráció végén végrehajtódik continue, break itt is használható kif1; while (kif2) { utasitas1; utasitas2;... utasitasn; kif3; } *majdnem: continue ide ugrana!

21 21 Vezérlési szerkezetek Még egy, nagyon hasznos ciklus foreach ($tomb as $ertek) utasitas; foreach ($tomb as $kulcs => $ertek) utasitas; foreach ($tomb as $kulcs => $ertek) { utasitas1; utasitas2;... utasitasn; } Végigmegy a tömb elemein ( $ertek ) Hasznos, ha nem ismerjük a kulcsokat vagy lényegtelen az értékük, de a másik változattal ehhez is hozzáférünk ( $kulcs ) a foreach a megadott tömb egy másolatával dolgozik! az $ertek módosítása tehát hat az eredeti tömbre, megoldás: $tomb[$kulcs] = ujertek;

22 22 Vezérlési szerkezetek foreach példa $sor) { $sorok[$index]=strrev($sor); } foreach($sorok as $sor) { echo $sor.' '; } ?> Kimenet: Amstel Heineken Kozel Amstel Heineken Kozel letsmA nekenieH lezoK

23 23 Függvények Definíció szintaxisa function valami($arg1, $arg2,..., $argn) {... return $result; } Bármilyen érvényes PHP kódot tartalmazhat, még függvény és osztály definíciókat is PHP4 óta a definíciónak nem kell megelőznie a kódban az első használat helyét Polimorfizmus, függvény újradefiniálása nem megengedett Tömb is lehet argumentum

24 24 Függvények Visszatérési érték function egy() {... } Ha nincs return, végigfut, majd visszatér Nem muszáj értékkel visszatérni Tetszőleges értékkel vissza lehet térni, ezért nem is kell definiálni a visszatérési érték típusát Több érték visszaadása tömbbel (is) megoldható, sőt objektumokat is visszadhatunk function ketto() {... return; } function harom() {... return array(1,2); }

25 25 Függvények Globális változók elérése function globalis() { global $g;... return; } Módosítás természetesen megmarad, ha nem létezett ilyen nevű globális változó akkor létrejön function ref(&$arg) { $arg++; return; } valami($x); $x értéke eggyel nő Ilyen paraméter helyére csak változót írhatunk! Referencia szerinti paraméterátadás

26 26 Függvények Argumentumok kezdőértéke function vesz($aru,$mennyiseg=5) {... } Függvényhíváskor elhagyhatóak az ilyen paraméterek Más argumentumoktól jobbra helyezkedjenek el function valami() {... } PHP4 óta func_num_args() : változók száma func_get_arg($i) : $i -edik argumentum értéke func_get_args() : egy tömbben az összes argumentum (index 0-tól) Változó argumentumszám

27 27 Előre definiált változók Apache változók $_SERVER[] : a szerverrel és aktuális HTTP kapcsolattal kapcsolatos adatok

28 28 Előre definiált változók $PHP_SELF: szkriptfájl neve, docroothoz képest relatív alakban → ”konyvtar/proba.php” $_GET, $_POST : külső változók, formkezelés $_FILES : feltöltött fájlok $_SESSION : session-változók $_COOKIE : sütíí PHP változók

29 29 Formok Űrlapok, kérdőívek, adatlapok, login/logout A formból érkező adatokat a $_GET/$_POST és a $_FILES tömbökön keresztül érjük el Egy egyszerű form: Name: action mező: feldogozó oldal/szkript method mező: átvitel módja. ”post” a háttérben ”get” az URL-ben: foo.php?usernev=…

30 30 Beviteli mezők Elérése: $_POST[’rejtett’] Kezdőérték: value mező Rejtett mező Elérése: isset($_POST[’pipa’]) Kezdőérték: ha checked mező, ha ki van pipálva Checkbox Elérése: $_POST[’szoveg’] maxlength : böngesző ennyi karaktert enged beírni (ellenőrizni!) Szövegmező

31 31 Beviteli mezők Elérése: $_POST[’ertek’] Kezdőérték: ha checked, akkor ki van választva Ugyanazon formon belüli, azonos nevű radio inputok tartoznak össze Radio Elérése: $_POST[’area’] Kezdőérték: tag-ek közé írt szöveg rows : sorok, cols : szélesség kezdoertek Több szöveg

32 32 Beviteli mezők Elérése: $_POST[’kor’] Kezdőérték: ha selected, akkor ki van választva AC BSS KSZK Legördülő lista Elérése: $_POST[’datum’][’ev’] PHP4 óta teszőlegesen sok dimenzió. Tömbök átadása

33 33 Beviteli mezők Elérése: $_POST[’ismeros’] Tömb, ami a megjelölt opciókhoz tartozó értékéket ( value ) tartalmazza Kezdőérték: több selected is lehet Ida Matild Klotild Töbszörös választás


Letölteni ppt "PHP alapok Farkas Tamás (blaq)"

Hasonló előadás


Google Hirdetések