250 likes | 364 Views
Web fejlesztés IV. Illés Zoltán ELTE TTK Informatika zoltan.illes@elte.hu. 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
E N D
Web fejlesztés IV. Illés Zoltán ELTE TTK Informatika zoltan.illes@elte.hu
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 • http://www.php.net • 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 • <p align=center><font size=5>Jelentkezési lap rendszergazda továbbképzésre</font></p> • <form> • ….itt van a tartalom • </form> • <p>Kérem adja meg a jelentkezéshez szükséges adatait!</p> • 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! <?phpif ($a > $b) { echo "a nagyobb, mint b";} else { echo "a NEM nagyobb, mint b";}?> <?phpswitch ($i) {case "alma": echo "i most: alma"; break;case ”körte": echo "i most: körte"; break;case ”barack": echo "i most: barack"; break;}?>
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 • <select name=elemek[] size=6 multiple> • 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 Zoltan.Illes@elte.hu