Home > PHP-tecaj > PHP tecaj: peta lekcija

PHP tecaj: peta lekcija

Prosinac 26th, 2008

Jedna od najvaznijih osobina svakog programskog jezika je i sposobnost “sabiranja” vise naredbi u jednu jedinu naredbu, drugim rijecima “definisanje novih funkcija“.

Razumljivo, PHP ima tu osobinu.

PRIMJER:

Za odredjeni – upisani broj dana treba izracunati ukupni broj sekundi!

function dan ($BrojDana)
{
$sekunde = 3600 * 24 * $BrojDana;
return $sekunde;
}

$x = dan(7);
echo “7 dana imaju $x sekundi !”;

$BrojDana ovdje predstavlja argument funkcije .

Jedna funkcija moze sadrzavati vise argumenata, ali isto tako i ni jedan argument.:

function KamatniRacun ($procent,$VrijemeRacunanja)
{
$kapital = 10000.0;
$x = 1.0 + ($procent/100.0);
$y = $kapital * exp( $VrijemeRacunanja*log($x) );
return $y;
}

$proc = 6;
$vrijeme = 10;
$x = $KamatniRacun($proc,$vrijeme);
echo “Kapital iznosi $x KM-a”;

Vise o primjeni matematickih funkcija mozete procitati (opet na njemackom jeziku) u prirucniku . (Obecavam da cu i ove znacajnije “linkove” prevesti sto prije budem mogao).

Problematicno u ovom navedenom (i poprilicno beskorisnom – makar sa ekonomskog stanovista :) ) primjeru je da se promijenjljiva $kapital rucno polaze, bolje receno unaprijed odredjuje.

U normalnom slucaju se i ova vrijednost “ukucava” tj. kao ARGUMENT predaje funkciji na obradu:

function KamatniRacun ($procent,$VrijemeRacunanja,$kapital) { …

Mi posmatramo slucaj u kojem je i ova varjabla vec odredjena, tj. kada je njena vrijednost upisana od strane programa u funkciju i kada se NE PREDAJE kao argument.U tom slucaju moramo eksplicitno navesti da ova promjenjljiva dolazi ” s vana “. To postizemo koriscenjem naredbe global :

$kapital = 10000.0;

function KamatniRacun($procent,$VrijemeRacunanja)
{
global $kapital;

$x = 1.0 + ($procent/100.0);
$y = $kapital * exp( $VrijemeRacunanja*log($x) );
return $y;
}

$proc = 6;
$vrijeme = 10;
$x = $KamatniRacun($proc,$VrijemeRacunanja);
echo “Kapital iznosi $x KM-a”;

Jos jedno vazno podrucje za primjenu PHP-a je obrada “lanaca znakova” (string engl. Zeichenkette njem. na bos. recenica ili ‘red rijeci‘).

Postoji mnogo naredbi za obradu “string-ova” – ovdje ce biti predstavljene samo najvaznije.

Naravno, vise ima u … gdje??? … :) )) u prirucniku naravno, a gdje bi drugo.

$x = ” Ja sam jedna dosadna recenica! “;
$y = trim($x);

Naredbe ltrim() i chop() otklanjaju “whitespace” tj “prazna polja” prije, odnosno poslije rcenice.

Za one koji bi da se malo poigraju: strtoupper() i strtolower() mijenjaju sve znakove jedne recenice u velika, odnosno mala slova.

PAZNJA : Kod specijalnih znakova je problematicno !

Naredba ucfirst() mijenja prvi znak u redu rijeci u veliko slovo (naravno, ako je to moguce).

Naredba ucwords() mijenja u svakoj rijeci jedne recenice prvi znak u veliko slovo (opet ako je moguce).

Slijedeca naredba je vrlo vazna kod pripreme teksta za WWW:

$x = nl2br($y);

Na ovaj nacin mijenjamo sve znakove za novi red (” \n “) recenice $y u naredbu <BR>\n.

Osim navedenih postoje jos vazne funkcije za usporedbu recenica, zamjenu, izmjenu i korstenje specijalnih HTML znakova

Cookies nazivamo kratke informacije koje WWW-serveri ostavljaju kod klijenata (clients).

Oni imaju poseban znacaj prije svega kod koristenja free-mails, kupovine u internetu i sl., tacnije kada server treba vise informacija od posmatraca nego sto bi samo bila IP adresa.

Cookies sadrzavaju slijedece informacije:

Name: Ime

Value: Vrijednost

expires: Datum isteka vaznosti

domain: Dio za adresiranje na serveru, koji cookie moze ponovo procitati

path: Samo stranice, koje leze u tom direktoriju ili nekom od poddirektorija, smiju biti zatrazene od cookie-a.

secure: Ako je ukljucena (secure – sigurnost ), cooki smije biti prenosen SAMO preko “zakljucanih” informacijskih kanala.

Primjer:

Zelimo utvrditi da li je posjetilac vec bio na nekoj stranici. U tu svrhu stavicemo prilikom prve posjete cookie : Ovo moramo uraditi jos u samom zaglavlju HTML teksta (HTML-Head), sto ce reci na pocetku teksta. (Obavezno povesti racuna da bas nikakav znak -ni prazan znak ne stoji prije ovog PHP-dijela).

<?
$t = time()+3600*24*10;
SetCookie(“mojcookie”,”Vec posjeceno”,$t,”/test”,”.ba”);
?>
<HTML>

Ovom naredbom postavljamo jedan cookie pod imenom mojcookie sa vrijednoscu “Vec posjeceno” sa rokom vaznosti od 10 dana .

Citanje se dozvoljava za svaki server sa nastavkom .ba , i to samo iz fajlova koji leze ili u direktoriju /test ili nekom od poddirektorija ovog dir. /test .

Rok vaznosti jednog cookie-ja se daje u sekundama i to od 01.01.1970.

Funkcija time() vraca sekunde od tog datuma do trenutnog vremena.

Vise funkcija oko datuma i vremena imate u … prirucniku.

Posto se vrijeme vrlo rijetko ( :) ))) ) racuna u sekundama, onda se koristi nekakva funkcija koja opet racuna ovo vrijeme npr. u danima:

function dani ($BrojDana)
{
$sekunde = time()+ 3600 * 24 * $BrojDana;
return $sekunde;
}
SetCookie( “mojcookie”, “Vec posjecen”, dani(10), “/test”, “.ba” ) ;

Citanje cookies-a uz pomoc PHP-a je vrlo jednostavno realizovano: Sadrzaj cookie-a se memorise u jednu promjenjljivu sa imenom tog cookie-a.

echo “$mycookie”;

gibt also den Wert des Cookies aus, in unserem Fall den Text “Schon besucht”.

Ein Server kann mit PHP ein Cookie wieder entfernen, indem lediglich der Befehl setcookie mit dem Namen des Cookies als Argument angegeben wird:

SetCookie(“mojcookie”); Ovdje se vec radi o “naprednom PHP programiranju“:

U pojedinim slucajevima je potrebno “pustiti” petlju preko “kamare” promjenjljivih.

Npr. to je cesto slucaj kod obrade formulara u kojem se nalazi vise polja za unosenje:

<INPUT NAME=”polje0″ >
<INPUT NAME=”polje1″ >
<INPUT NAME=”polje2″ >

<INPUT NAME=”polje99″ >

Sad bi bilo vrlo naporno sva polja pojedinacno “obraditi”.

Ako bi htjeli pogledati sadrzaj svih polja, onda bi mogli umjesto slijedecih 100 naredbi:

echo “polje0: $polje0 <BR>\n”;
echo “polje1: $polje1 <BR>\n”;

echo “polje99: $polje99 <BR>\n”;

preduzi slijedece korake:

Najprije bi spojili izabrana imena promjenjljivih :

for ($i=0;$i<100;$i++)
{
$v = “polje”.$i;
echo “$v: ${$v} <BR>\n”;
}

Znaci sa $v dobijamo imena promjenjljivih, sa ${$v} dobijamo zahvat na sadrzaj promjenjljive sa imenom $v

Popularity: 7% [?]

PHP-tecaj , ,

  1. Trenutno nema komentara.
  1. No trackbacks yet.