Készítette: Lipp Marcell PHP Készítette: Lipp Marcell
Mire használják a PHP-t? Szerveroldali webprogramozási nyelv A szerverhez érkező http kérések kiszolgálására állítja elő a választ Általában adatbázissal kommunikál A hozzáérkezett kérdésekre HTML formátumú válaszokat generál, amelyeket a böngészőnk meg tud jeleníteni Használható konzolosan is
A nyelv főbb paraméterei Interpretált nyelv -> Használatához a szerverre futtatási környezetet kell telepíteni, saját gépünkre fejlesztéshez virtuális szerver alkalmazást Gyengén típusos Objektum-orientáltságot támogatja
Története 1. verzió: Rasmus Lerdorf – 1995 Egyszerű weblap funkciókra C nyelven lett implementálva PHP3 – 1998 (Zeev Suraski és Andi Gutmans) Zend Technologies: ellenőrzi a nyelv fejlesztését PHP4 (2000) PHP5 (2004) – nagy durranás
Alapvető nyelvi elemek PHP blokk kezdete és vége: <?php, ?> Képernyőre írás: echo vagy print Változók: $jellel jelöljük őket Konstans: define("KONSTANS","123456"); Utasítások végén pontosvessző! C-hez hasonló szintaktika Blokk { és } jelek között Paraméterek zárójelben, vesszővel elválasztva Megjegyzés: /* */ illetve //
Változók Egész számok: 32-64 bit, implementáció függő Lebegőpontos számok Boolean: 0 = false, minden más: true Null típus: csak egy érték: null Erőforrás változók (resource) A változók típusát a változó környezete határozza meg => hibaforrás!!! A változót nem kell előre deklarálni, elég elkezdeni használni
Tömbök Dinamikus tömb kezelés: nem szükséges előre deklarálni, méretét nem fontos előre megadni Feltöltése nem feltétlenül folytonos Egy tömbön belül is a különböző elemek lehetnek különböző típusúak Tömb eleme lehet tömb is Tömb eleme lehet tetszőleges objektum is Léteznek szöveggel indexelt, úgynevezett asszociatív tömbök
Alapvető vezérlési szerkezetek if(felt) { … } elseif(felt) { … } else { … } switch(változó) { case érték1: … break; case érték2: … break; default: … }
Alapvető vezérlési szerkezetek for($i = 0; $i < 100; $i++) { … } while(felt) { … } do { … } while(felt); foreach ($tomb as $elem) { … } foreach ($tomb as $kulcs => $ertek) { … }
Mintakód $ember["Név"] = "Béla"; $ember["Kor"] = 34; $ember["Foglalkozás"] = "programozó"; foreach($ember as $kulcs => $ertek) { echo("$kulcs: $ertek<br>"); }
Eredmény Név: Béla Kor: 34 Foglalkozas: programozó
Mintakód Eredmény: Eredmény: Hiba $tomb[0] = 5; $tomb[1] = "Kutya"; $tomb[5] = 42; foreach($tomb as $elem) { echo("$elem<br>"); } $tomb[0] = 5; $tomb[1] = "Kutya"; $tomb[5] = 42; foreach($tomb as $elem) { echo("$elem<br>"); } Eredmény: 5 Kutya 42 Eredmény: Hiba
Függvény/metódusok function csinal($a, $b, $c) { if($c) print($a+$b); return $a; } csinal(5, 43, false); Megadható alapértelmezett érték is, de csak a kötelező paraméterek után! Func_num_args() Func_get_arg(i)
Mintakód function faktorialis($n) { if ($n == 1) return 1; else return $n * faktorialis($n-1); } print (faktorialis(6));
Bemenő adatok kezelése Kívülről az adatátadásnak két módja van: GET: böngészősorban megadhato ?kulcs=ertek formában POST: biztonságosabb, lehet több soros is az adat Az így kapott értékek a $_GET illetve $_POST asszociatív tömbbe kerülnek.
Adatok átírása asszociatív tömbből változókba foreach($_GET as $kulcs => $ertek) { $$kulcs = $ertek; } foreach($_POST as $kulcs => $ertek)
A Session-ök A HTTP állapotmentes protokoll Valahogy mégis szeretnénk adatot átvinni az egymásból meghívott PHP fájlok között session_start() $_SESSION asszociatív tömb session_destroy()
A sütik Lokális gépen tárolódnak speciális fájlként Az oldal elhagyása után akár napokig tárolható setcookie(name, value, expire, path, domain); $_COOKIE asszociatív tömb
Alapvető fájlkezelés $handle = fopen("inputfile.txt", "r"); if ($handle) { while (($line = fgets($handle)) !== false) { print($line); } Vagy: $file = file_get_contents("./input.txt");
Alapvető fájlkezelés $fp = fopen('output.txt', 'w'); fwrite($fp, '1'); fwrite($fp, 'kutya'); fclose($fp); file_put_contents($file, "blabla");
Alapvető adatbáziskezelés $connection = mysql_connect("localhost", "user", "password"); mysql_select_db("database_name"); $query = "INSERT INTO table_name (name, age) VALUES ($name, $age)"; if (!mysql_query($query, $connection)) print ("Error!"); else print ("Succes!"); mysql_close($connection);
Alapvető adatbáziskezelés $connection = mysql_connect("localhost", "user", "pass"); mysql_select_db("database_name"); $query = mysql_query("SELECT * FROM table"); while ($row = mysql_fetch_row($query)) { print ("Név: $row[0] + Kor: $row[1]<br>"); } mysql_close($connection);
Köszönöm a figyelmet 3 kérdés: Milyen karakterrel kezdődik az összes változó neve? Mi az asszociatív tömb? Mire jó a SESSION?