alapjai, bevezetés Vincze Dávid Miskolci Egyetem, IIT vincze.david@iit.uni-miskolc.hu
PHP Personal Home Page (Tools) Script nyelv -> interpretált Elsősorban weboldal (dinamikus) tartalmak előállítására Nem csak webszerveren keresztül használható Van különálló parancsértelmezője Webszerveren keresztül több módon is használható: CGI, SCGI, FastCGI... mod_php
Alapvetően az értelmezésre küldött stringeket statikus elemként kezeli, így könnyen ágyazható pl. HTML-be <?php és?> tagek közé ágyazott részeket veszi csak PHP kódnak <? is használható (beállítás függő short open tag, nem javasolt) Hello World!
<?php print("hello World!\n");?> PHP
<html> <body> <font size= 4 color= blue > <?php echo("hello Blue World!\n");?> </font> <?php echo("hello Default World!\n");?> </body> </html>
Futtatás CLI: $ php hellow.php cat hellow.php php stb.. Webszerver: http://szerver/dir/hellow.php
Utasítások közé ; Változók $valtozo echo $valtozo ; $valtozo=ertek ; Típus implicit módon, nem kell deklarálni Tömb $tomb[index]
Komment // komm # komm /* komm */ - több soron is átnyúlhat Blokk { } Függvények fuggveny();
Típusok int double string boolean array object null
Típusok Szükség esetén automatikus típuskonverzió gettype() gettype($szoveg) echo(gettype($semmi)); NULL unset($valotozo); $valtozo NULL is_típus() is_string($szam) settype() settype($szam, string )
Tömb típus Asszociatív tömb Inicializálás $tomb = array(); $tomb = array('elem1', 'masik elem', 'lapos elem'); $tomb = array('egy' => 1, 'ketto' => 2); Elem elérése $tomb['harom']=3; echo($tomb['egy']); Törlés unset($tomb['harom'])
Karakterlánc $sztring= enni ; $szoveg[0]= i ; Konstansok íratlan szabály szerint csupa nagybetű define('otezer',5000); szimplán a nevével lehet rá hivatkozni, nem kell $ get_defined_constants();
Operátorok + - = * / ==. stb. stb. ha típust is szeretnénk egyeztetni: ===,!==. string összefűző operátor print($szoveg1. ' - '. $szoveg2); echo(($a + $b / 6 * $d) == 9);
Vezérlési szerkezetek if-elseif-else switch-case while do-while for foreach continue, break
Vezérlési szerkezetek if (kif) {} elseif (kif) {} else {} switch ($valt) { case 5: utasitas; break; default:...} while (kif) {} do {} while (kif) for (init ; felt; utas) {} foreach ($tomb as $ertek) { echo($ertek); }
Függvény function fgv($param1=4, $param2, ) { return $v; } Nem muszáj értékkel visszatérni (return elhagyható) Referencia szerinti változó átadás function refvalt(&$valt) {}; Globális változok global $valt
Előre definiált (globális) változók (tömb) $_SERVER Környezeti változók pl. gyakori: REMOTE_ADDR $_SERVER['REMOTE_ADDR'] $_GET $_POST $_SESSION $_COOKIE $_FILES
Legyen felhasználótól érkező adatunk! HTML Formok <form action="formprocess.php" method="post"> Neved: <input type="text" name="nev" /><br /> <input type="submit" value="kuld!"/> </form> action: a szkript, amit submit meghív method: paraméterátadás módja GET/POST formprocess.php?nev=tux
HTML Formok <input type=... /> text radio checkbox hidden <textarea></textarea> <select> <option> <option> </select>
HTML Formok <textarea name= sokszoveg rows= 3 cols= 20 > default szoveg </textarea> <select name= lista > <option value= 1 >egy</option> <option value= 2 >ketto</option> </select>
HTML Formok <input type= radio name= leves value= gomba />Gomba <input type= radio name= leves value= hus />Hus <input type= radio name= leves value= sajt checked=checked />Sajt <input type= checkbox name= fuszer value= so />So <input type= checkbox name= fuszer value= bors checked=checked />Bors <input type= checkbox name= fuszer value= paprika checked=checked />Paprika
HTML Formok $_POST['sokszoveg'] $_GET['fuszer'] Tömbként is lehet átadni name= lista[] register_globals automatikusan létrejönnek változóként pl. $fuszer, $sokszoveg nem ajánlott, manapság alapból tiltva van nézzük meg miért is...
Include / Require include('hasznos_fuggvenyek.php') include_once() require(), require_once() Ekvivalensek, de: require() E_COMPILE_ERROR-t include() E_WARNING-ot generál
Filekezelés $handler=fopen('filenev','mod'); Mód r,w,a,x (w=x, csak x nem írja felül) r+,w+,a+,x+ fclose(), fread(), fgetc(), fgets(), feof()