WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László
PHP K.L. 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ő
PHP K.L. 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++; } ?>
PHP K.L. 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(); }... ?>
PHP K.L. 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
PHP K.L. 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”); ?>
PHP K.L. Meghívó űrlap adatainak átvétele FORM WEB szerverPHP program k.változók Std. IO POST GET tömbök 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
PHP K.L. Környezeti változók átvétele <?php print (” Valtozok ertekei \n”); print (” \n”); foreach ($GLOBALS as $valt => $ert ) { print (” $valt == $ert \n”); } ?> A CGI-ben megismert változók adatai szerepelnek
PHP K.L. Közvetlen hivatkozás a mezőkre …... <?php print (” A TEXT mezo = $T1 \n”); print (” A TEXTAREA mezo = $A1 \n”); … ?>
PHP K.L. 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 “); } ?>
PHP K.L. Speciális lehetőségek többértékű SELECT mező feldolgozása: foreach ($mezőnév as $ert) {... } önmagát meghívó lap: ” METHOD=…> dokumentum fejléc megadása header(“szöveg”); header(“Location: URL”); dokumentum átirányítása
PHP K.L. Állományok feltöltése kliens file <INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE= n> Feltöltést elindító program Ideiglenes terület végleges terület szerver
PHP K.L. Állományok feltöltése 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_NAMEnév FNEV_SIZEméret FNEV_TYPEtípus
PHP K.L. Állományok feltöltése Az ideiglenes helyől át kell vinni a végleges helyre <?php if (isset($FMA)) { if ($FMA_SIZE < ) { copy($FMA, “c:\adatok\$FMA_NAME”) or die(“Masolasi hiba”); print (“Sikeres Attoltes \n”); } ?>
PHP K.L. Á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”);...
PHP K.L. Á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
PHP K.L. Á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)
PHP K.L. Állományok kezelése UZENET LEHELYEZO KULDO: SZOVEG : <TEXTAREA NAME=TM ROWS=10> Induló űrlap
PHP K.L. Állományok kezelése megjelenő dokumentum KM TM
PHP K.L. Állományok kezelése <?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(" Uzenet lementve \n"); print(" Uj uzenet \n"); ?> meghívott PHP program
PHP K.L. Állományok kezelése Uzenet lementve Uj uzenet Figyelem! Kedvezmenyes husveti AB puska vasar es feladat keszites peter3.msg válaszlap
PHP K.L. Dátum kezelése time() ó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
PHP K.L. Dátum kezelés AKTUALIS IDO <?php $ido = getdate(); print (" ". $ido["year"]. "-". $ido["mon"]. "-". $ido["mday"]. " "); print (" ". $ido["hours"].":". $ido["minutes"]." \n"); $min = $ido["minutes"]; print (" \n"); print (" Frissit "); ?>
PHP K.L. 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