240 likes | 344 Views
WEB Technológiák. WEB-DB és XML. dr. Kovács László. ME Általános Informatikai Tsz. PHP. Objektumok kezelése. osztály definíció objektum létrehozás. class onev extends szoszt { változók metódusok }. - csak egy szülő osztály adható meg - lehet alkalmazni konstruktor metódust is
E N D
WEB Technológiák WEB-DB és XML dr. Kovács László ME Általános Informatikai Tsz.
PHP Objektumok kezelése osztály definíció objektum létrehozás class onev extends szoszt { változók metódusok } - csak egy szülő osztály adható meg - lehet alkalmazni konstruktor metódust is - szülő osztálybeli metódusok újradefiniálhatók - nincs védelmi rendszer, az objektum összes tulajdonsága kivülről is elérhető K.L.
PHP Objektumok kezelése A metódusban az osztály változókra történő hivatkozás: $this->változó Konstruktor léterhozás: a metódus neve megegyezik az osztály nevével <?php class lista { var $elemek = array(); var $hossz; function lista($v) { $this->hossz = $v; } function beszur($e) { $this->elemek[$this->hossz] = $e; $this->hossz++; } } ?> K.L.
PHP Objektumok kezelése Szülő osztály átdefiniált metódusának meghívása: szülőoszt::metodus() <?php ... class a { var $v = 0; function leptet(){ $this->v++; } function novel(){ $this->v++; } } ... class b extends a { function leptet(){ $this->v+=2; } function osleptet(){ a::leptet(); } } ... ?> K.L.
PHP Objektumok kezelése Objektumok létrehozása: $objnev = new oszály(paraméterek); - meghívódik a konstruktor metódus - változó elérés $objnev->változó - metódus hívás $objnev->metódus() - automatikus felszabadítás - az objektumra is a szokásos láthatósági feltételek élnek K.L.
PHP Objektumok kezelése <?php class a { var $x; function a($v) { $this->x = $v; } } for ($i=1; $i<10; $i++) { $tt[$i] = new a($i); } print ($tt[1]->x.”\n”); print ($tt[4]->x.”\n”); ?> K.L.
PHP Meghívó űrlap adatainak átvétele FORM GET k.változók POST WEB szerver tömbök PHP program Std. IO Fogadó tömbök: $GLOBALS - környezeti változók $HTTP_GET_VARS - input mezők tartalma, GET módnál $HTTP_POST_VARS - input mezők tartalma, POST módnál közvetlen hivatkozás K.L.
PHP Környezeti változók átvétele <BODY> <?php print (”<H1>Valtozok ertekei</H1>\n”); print (”<BR><BR>\n”); foreach ($GLOBALS as $valt => $ert ) { print (” $valt == $ert <BR>\n”); } ?> <HR> </BODY> A CGI-ben megismert változók adatai szerepelnek K.L.
PHP Közvetlen hivatkozás a mezőkre <FORM> <INPUT TYPE=TEXT NAME=T1> <INPUT TYPE=TEXTAREA NAME=A1> <SELECT NAME=S1 MULTIPLE> <OPTION>01 <OPTION>02 … </SELECT> ... </FORM> <?php print (” A TEXT mezo = $T1<BR>\n”); print (” A TEXTAREA mezo = $A1<BR>\n”); … ?> K.L.
PHP Tömbön keresztüli hivatkozás mezőkre <?php $PT = (count($HTTP_POST_VARS))? HTTP_POST_VARS:HTTP_GET_VARS; foreach ($PT as $nev => $ert ) { if (gettype($ert) == “array”) { foreach ($ert as $elem) { print (“ $elem “); } } else { print (“ $ert “); } } ?> K.L.
PHP Speciális lehetőségek többértékű SELECT mező feldolgozása: foreach($mezőnév as $ert) { ... } önmagát meghívó lap: <FORM ACTION=“<?php print($PHP _SELF) ?>” METHOD=…> dokumentum fejléc megadása header(“szöveg”); header(“Location: URL”); dokumentum átirányítása K.L.
PHP Állományok feltöltése kliens Ideiglenes terület végleges terület file szerver <FORM ENCTYPE=“multipart/form-data” ACTION=“…php> <INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE= n> <INPUT TYPE=FILE NAME=FNEV> <INPUT TYPE SUBMIT> </FORM> Feltöltést elindító program K.L.
PHP Állományok feltöltése <FORM ENCTYPE=“multipart/form-data” ACTION=“…php> <INPUT TYPE=FILE NAME=FNEV> </FORM> Az állomány a szerveren egy ideiglenes helyre kerül Az ideiglenes állomány elérése (név azonosságon alapszik): FNEV ideiglenes elérési útvonal FNEV_NAME név FNEV_SIZE méret FNEV_TYPE típus K.L.
PHP Állományok feltöltése Az ideiglenes helyől át kell vinni a végleges helyre <FORM ENCTYPE=“multipart/form-data” ACTION=“…php> <INPUT TYPE=FILE NAME=FMA> </FORM> <?php if (isset($FMA)) { if ($FMA_SIZE < 200000) { copy($FMA, “c:\adatok\$FMA_NAME”) or die(“Masolasi hiba”); print (“Sikeres Attoltes<BR>\n”); } } ?> K.L.
PHP Állományok kezelése Más forrásállományok beépítése: include(”állomány”); Állomány létezése file _exists(“állomány”); Állomány jellege is _file(“állomány”); is _dir(“állomány”); is _writeable(“állomány”); ... K.L.
PHP Állományok kezelése Allomány léterhozása: touch(”állomány”); Állomány törlése: unlink(“állomány”); Állomány nyitás, zárás $fv = fopen(“állomány”,”mód”); r,w,a fclose($fv); Zárolás : flock($fv,”mód”); 1,2,3 K.L.
PHP Állományok kezelése Állomány olvasás: fgets($fa,méret); fread($fa,méret); fgetc($fa); Állomány írás: fputs($fa,”szöveg”); fwrite($fa,”szoveg”); Pozicionálás fseek($fa,pozíció); Könyvtár kezelés opendir(”kat”), closedir(”kat”), readdir($ka) K.L.
PHP Állományok kezelése <BODY> <H3>UZENET LEHELYEZO</H3> <BR><HR> <FORM ACTION=I1.PHP > <TABLE> <TR><TD>KULDO: <TD><INPUT TYPE=TEXT NAME=KM><BR> <TR><TD VALIGN=TOP>SZOVEG : <TD><TEXTAREA NAME=TM ROWS=10></TEXTAREA><BR> <TR><TD><INPUT TYPE=SUBMIT VALUE=ELKULD><TD> </TABLE> </FORM> <BR><HR> </BODY> Induló űrlap K.L.
PHP Állományok kezelése megjelenő dokumentum KM TM K.L.
PHP Állományok kezelése <BODY> <?php $i = 1; $fnev = $KM."$i".".msg"; while (file_exists($fnev)) { $i++; $fnev = $KM."$i".".msg"; } touch($fnev); $fv = fopen($fnev,"w"); fwrite($fv,$TM); fclose($fv); print("<BR><H3> Uzenet lementve </H3><BR>\n"); print("<A HREF=$HTTP_REFERER>Uj uzenet</A>\n"); ?> </BODY> meghívott PHP program K.L.
PHP Állományok kezelése Figyelem! Kedvezmenyes husveti AB puska vasar es feladat keszites 03-565522 peter3.msg válaszlap <BODY> <BR><H3> Uzenet lementve </H3><BR> <A HREF=http://laszlo.iit.uni-miskolc.hu:8080/i1.htm>Uj uzenet</A> </BODY> K.L.
PHP Dátum kezelése time() 1970.01.01 óta eltelt idő sec-ben $da = getdate() dátum megadása asszociativ tombben $da[“year”], $da[“mon”], $da[“mday”] $da[“hours”], $da[“minutes”], $da[“seconds”] $da[“wday”], $da[“yday”], $da[“mday”] date(”formatum”,$ido) dátum formátumozott kiírása mktime(óra, perc, sec, hónp, nap, év) dátum érték készítése checkdate(hónap, nap, év) dátum ellenőrzése K.L.
PHP Dátum kezelés <H2> AKTUALIS IDO </H2> <BR><HR><BR> <?php $ido = getdate(); print ("<H3>". $ido["year"]. "-". $ido["mon"]. "-". $ido["mday"]. " "); print (" ". $ido["hours"].":". $ido["minutes"]."</H3>\n"); $min = $ido["minutes"]; print ("<BR><HR>\n"); print ("<A HREF=$PHP_SELF> Frissit</A> "); ?> K.L.
PHP Sztring kezelés strstr(miben,mit) rész-sztring keresés strpos(miben, mit) rész-sztring keresés poziciót ad vissza substr(miben, poz, hossz) rész-sztring strtok(szo, szeparator) szó darabolás $szo = strtok($szoveg,$szeplist); while (is_string($szo)){ if ($szo){…} $szo = strtok($szeplist); } trim(szo) üres szöveg-vég levágás substr_replace(miben,mit,index) rész-szöveg helyettesítés strtoupper(szo) nagybetűre konvertálás K.L.