Web fejlesztés IV. Illés Zoltán ELTE TTK Informatika
Ami eddig volt… HTML interaktív elemek SSI, CGI jelentése,használata Kliens oldali nyelv –Javascript Szerver oldali eszköz –Shell script (SSI, CGI)
SSI, CGI programeszközei Tetszőleges programozási nyelv Shell script PHP (Programozható Hypertext Preprocesszor)
PHP Ingyenes Aktuális verzió: –4.4.5 –5.2.1 Linux disztribúciók része RISC OS, SGI, Netware Windows PHP dokumentáció (magyarul is…)
PHP Installálás Apache: (httpd.conf bejegyzések) –Addtype application/x-http-php.php –LoadModule php4_module libexec/libphp4.so –AddModule mod_php4.c Windows IIS –Phpx-installer.exe –IIS-Tulajdonságok-Home Dir. Fül-Configuration App. Mappings:.php c:\php4\php.exe %s %s
PHP használata Használati forma –SSI előfeldolgozó –CGI válasz generátor.php kiterjesztés Nem kötelező a cgi-bin könyvtárba tenni Nincs „főprogram” <?php –// php számára írt sorok ?>
PHP Jellemzői C stílusú utódnyelv Interpretált Kis-, nagybetű különböző Utasítás lezáró: ; (pontosvessző) Megjegyzés: // vagy /*….*/ Referencia használat Objektumorientált
Típusok PHP-ban Skalár –Valós, egész, logikai, szöveg, objektum –$ jel használata: $a=25; –Logikai: $igaz=TRUE; –Minden nem 0, NULL, logikai igaz (mint C-ben) –$hexa=0xffff;// hexadecimális formátum –$s=„HF\n”;// string –„ és ‘ használat együtt: $i=”I’m a good boy…”
Tömbök PHP-ban I. Létrehozás –Explicit: $a[0]=„alma”; stb. –array() elemmel: $b=array(„fradi”,”UTE”,”MTK”); $c=array(„alma”=>”jonatán”, „szilva”=>”ringló”,...) Hozzáad végéhez: $b[]=„ETO”; Index 0-tól indul Törlés: unset($b[1]); –1-es index definiálatlan, használata hibát ad –If (array_key_exists(1,$a) print(„van”); else print(„nincs”);
Tömbök PHP-ban II. Valójában minden tömb asszociatív(hash) Egy tömbelem bármilyen típusú lehet –Többdimenziós, tömbök tömbje Teljes tömb kiírás: print_r($tomb); Elemszám: count($tomb) A string is tömb! –$nev=„fradi”; print(strlen($nev)); print($a[2]);
Tömbök PHP-ban III. array_push($vektor,”alma”,”körte”); –A v tömb végére illeszti az elemeket. $e=array_pop($vektor); –A végéről levesz egy elemet Többdimenziós tömbök –Mint JavaScriptben, tömbök tömbje Tömboperátorok –$a + $b;//tömb egyesítés, mintegy unió!! –$a == $b;//egyenlő ha kulcs/értékek azonosak –$a === $b // mint előző, de még a sorrend is azonos –!=, !== nem egyenlő, nem azonos
Szöveg függvények $a=”almafa”;// sok str fv. van print strlen($a);// 6 Is_string($a);// true Chr(65); ord(„a”);//A, 97 print substr($a,2,3);//maf split(„m”, $a); Strtoupper, strtolower,trim Stb…
Változók hatásköre Globális, ha függvényen kívül definiált Ez függvényen belül nem látszik automatikusan –global $a; // ekkor a $a külső látszik Lokális változó, függvényen belül Statikus változó, függvényen belül –static $a=0; // első híváskor inicializálás
Konstansok define(k,”Ez konstans”) –print(k); TRUE, FALSE, NULL Konstans létezés: if (defined(k)) print(„van”); PHP_VERSION, PHP_OS __FILE__, __LINE__
Kifejezések, operátorok Mint C-ben, ~ minden kifejezés and, or, xor (megmaradt && és ||) Parancs helyettesítés operátor `` –$adat=`ls –al`; // mint shell scriptben.,.= string operátorok –$a=„alma”. „fa”; //összefűzés Ha szükséges, automatikus konverzió –$b=„25 alma” + 4; // 29 lesz $b <<< heredoc operátor, és nem <<
Heredoc (<<<) operátor print <<<END Jelentkezési lap rendszergazda továbbképzésre ….itt van a tartalom Kérem adja meg a jelentkezéshez szükséges adatait! END;
Elágazások if (kif) ut; else ut; //mint C-ben –elseif// else utáni if –endif// nem kötelező switch, többirányú elágazás –case érték:… // érték szöveg is lehet! –break, default cimke –endswitch// ez is jó –Nem kötelező a break! $b) { echo "a nagyobb, mint b"; } else { echo "a NEM nagyobb, mint b"; } ?>
Ciklusok while (kifejezés) utasítás; do { ….} while(feltétel); //amíg igaz for(kif1;kif2;kif3) utasítás; foreach(vektornév as értéknév) utasítás; foreach(vnév as kulcs=>érték) utasítás; –Végiglépked egy vektoron
Függvények PHP-ban function osszead($a, $b) { return ($a+$b); } Meghívás: print(osszead(5,6)); Referencia szerinti paraméter –function novel(&$a) { $a++;} Lehet paraméternek kezdőértéket adni Változószámú paraméter használható –$db=func_num_args(); $i=func_get_arg(0-tól-db-ig) Összetett (több adat) visszaadás: –return array($a,$b,$c)
Osztályok Class kulcsszó Egyszeres öröklés, extends kulcsszó Adattag definíció: var $nev; Konstruktor név azonos az osztály nevével Példány definiálás: $elem= new valami(); Függvényhívás: $elem->fv(); Ösfüggvény hívás: Ős::fv(); parent::fv();
Kliens-Szerver kapcsolat HTTP környezeti változók megjelenése –$HTTP_SERVER_VARS vagy $_SERVER asszociatív tömb –Példa: alma.php, alma.php?a=almafa –$_SERVER['PHP_SELF'] megadja a fájlunk nevét, gyakran szerepel a form action paraméterében
Formok kezelése Form változó név php-s skalárként jelenik meg –Ha a php.ini-ben register_globals=on-ra van állítva Action paraméter: action HTTP_GET_VARS, HTTP_POST_VARS –Asszociatív tömb,a fentiekkel azonos a $_POST, $_GET –Irx-en mindkettő él. –Példa: masodfok.php –A $elemek tömbben jelennek meg a kiválasztott listaboxelemek. –Több textmezőhöz is rendelhető azonos vektor formájú név
File feltöltés I. $thefile – átmeneti változó, a file tartalma $thefile_name – a file eredeti neve a küldő gépen $thefile_size – a file mérete $thefile_type – a file MIME típusa $thefile-t a script végén letörli!!! –copy($thefile, file_név_a_szerveren); Ezek a globális változók az IRX-en nincsenek
File feltöltés II. $_FILES tömb, két indexes $_FILES[„nev1”][„name”], file név $_FILES[„nev1”][„tmp_name”], ideiglenes file $_FILES[„nev1”][„type”], állomány típus, application/octet-stream $_FILES[„nev1”][„size”], méret $_FILES[„nev1”][„error”], hibakód Másolás: copy($_FILES["nev1"]["tmp_name"], "./sql/fradi.ka"); Példa: feltolt.php
Köszönöm a figyelmet! Illés Zoltán Budapest, Pázmány Péter sétány 1/c