PHP Flashcards

1
Q

<h1>Kaj je PHP?</h1>

Kratica, kakšen jezik je, kako je tipiziran, za kaj se uporablja?

A

PHP - Hypertext Preprocessor je splošno namenski <b> objektno-orientiran</b> programski jezik, ki je <b>dinamično tipiziran</b>. Uporablja se za strežniške aplikacije, ki omogočajo dinamične spletne strani.
Konfiguracija se nahaja v <b>php.ini</b>
Možni zagon tudi preko <b>PHP konzole</b>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

<h1>Prednosti in slabosti PHP-ja?</h1>

A

<b>Prednosti:</b>
-Enostavna uporaba
-Dinamično tipiziran jezik
-Sintaksa zelo podobna C-ju
-Ogromni nabor knjižnic in vgrajenih funkcij
<b>Slabosti:</b>
-Klic PHP preko CGI (zakasnitve in vmesna abstrakcija)
-Starejše verzije imajo kritične varnostne luknje

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

<h1>Spremenljivke?</h1>

A

Zapišemo <b>s predpono $</b>, tipa ni treba specificirati (dinamično tipiziran jezik)
Spremenljivke <b>imajo doseg znotraj bloka kode</b>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

<h1>Osnovni tipi spremenljivk?</h1>

A

<b>String, Integer, Float, Boolean, Array, Object, NULL</b>
Tip se avtomatsko dodeli ob definiciji
Tip lahko preverimo z <b>var_dump(x)</b>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

<h1>Globalne funkcije nad nizi (string)</h1>

A

<ul><li><b>strlen(niz)</b> - preverimo dolžino niza</li><li><b>str_word_count(niz)</b> - preverimo število besed v nizu</li><li><b>strrev(niz)</b> - niz obrnemo</li><li><b>strpos(niz, niz2)</b> - poiščemo pozicijo niza2 v nizu</li><li><b>str_replace(niz1, niz2, niz)</b> - v nizu zamenjamo vse nize1 z nizom2</li></ul>

<b>Konkatenacija</b> nizov preko ločila (.)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

<h1>PHP in HTML?</h1>

A

PHP lahko enostavno <b>zapakiramo v HTML datotoke</b>, kar nam omogoča <b>dinamično spreminjanje (generiranje) HTML strani</b>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

<h1>PHP in HTTP zahtevki</h1>

A

<b>HTTP GET in POST zahtevke</b> lahko ujamemo z <b>$_POST[‘x’] ali $_GET[‘x’]</b>
z <b>isset(x)</b> preverimo če je spremenljivka nastavljena

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

<h1>PHP in piškotki</h1>

A

Lahko jih nastavimo preko funkcije <b>setcookie(name, value, expire, path, domain, secure, httponly)</b><br></br><u>Opcijske zastavice:</u><br></br><b>secure - piškotek se uporablja le pri HTTPS</b><br></br><b>HttpOnly - piškotek ni dostopen v JS</b>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

<h1>PHP in seje (SESSION)</h1>

A

<b>PHP seje (sessions)</b> so avtomatsko prirejanje <b>piškotka PHPSESSID</b> s čimer identificiramo enakega uporabnika
<b>Piškoted PHPSESSID ima unikatno vrednost nastavljeno s strani strežnika</b>
Zaženemo s <b>session_start()</b>
Nastavljamo <b>$_SESSION[‘x’]</b>
Brišemo z <b>session_destroy();</b>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

<h1>PHP in JSON</h1>

A

Objekte pretvorimo v JSON in obratno preko <b>json_encode(..)</b> in <b>json_decode(niz, zastavica)</b>
Če je zastavica = true, dobimo asociativno polje (map), sicer pa objekt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

<h1>PHP in XML</h1>

A

Lahko tudi preiskujemo <b>drevo XML elementov</b>.
Instanciramo objekt <b>DOMDocument()</b>. Klic metode določimo z puščico.
Z metodo <b>childNodes in nodeName ter nodeValue</b> preiskujemo med danimi elementi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

<h1>PHP in delo z datotekami</h1>

A

Za odpiranje datotek je <b>fopen()</b>.
Branje posameznih vrstic pa <b>fgets()</b>.
Lahko tudi preko file_get_contents(), kot tudi preko <b>GET zahtevka</b>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

<h1>PHP nalaganje datoteke</h1>

A

-Najprej je treba vklopit <b>“file_uploads = On”</b> v <b>php.ini</b>
Pri nalaganju uporabimo metodo <b>POST</b> in kodiranje <b>“multipart/form-data”</b>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

<h1>PHP filtri</h1>

A

Validiramo uporabniške vhode (email, spletni naslov…)
Funkcije:
<b>validate_domain, validate_url, validate_email, validate_ip…</b>
Lahko tudi <b>sanitiziramo</b> niz, tako da odpravimo HTML+JS značke/ukaze iz niza

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

<h1>PHP super-globalne spremeljivke</h1>

A

<u>Do njih lahko dostopamo v vseh PHP datotekah:</u><b>
$GLOBALS, $_SERVER, $_POST, $_GET, $_COOKIE, $_SESSION …</b>
Z $GLOBALS definiramo <b>globalno spremenljivko</b>
Z $SERVER dostopamo do <b>konfiguracije strežnika in parametrov HTTP zahtevka</b>,ki ga je poslal odjemalec

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

<h1>PHP razredi in objekti</h1>

A

PHP podpira objekte in dedovanje. Definirajo se v <b>classes</b> in se instancirajo z <b>new</b> rezervirano besedo.
Konstruktor se definira z <b>__construct</b>
Spremenljivke so public ali private.
Dedovanje se uporablja preko razredov z besedo <b>extend</b>
S “<b>-></b>” dostopamo do spremenljiv in metod.

17
Q

<h1>PHP try catch</h1>

A

Izjeme in napake lahko ulovimo z <b>try in catch</b>.

Z ukazom <b>throw</b> sprožimo izjemo.

18
Q

<h1>PHP napake</h1>

A
Avtomatsko se izpisujejo iz interpreterja in so vidle v brskalniku, lahko se tudi nastavijo preko <b>php.ini</b><b>Lahko nastavimo naslednje true/false zastavice:</b>
-display_errors
-display_startup_errors
-log_errors
-ignore_repeated_errors
<b>V PHP lahko tudi nadziramo/dostopamo preko funkcij:</b>
-error_clear_last()
-error_get_last()
-error_log()
<b>Tipi napak:</b>
-E_ERROR - kritična napaka, ustavi interpreter
-E_WARNING - nekritične napake
-E_NOTICE - morebitna napaka