12.09.2013 Views

PHP gevorderd - kerssies64.net

PHP gevorderd - kerssies64.net

PHP gevorderd - kerssies64.net

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>PHP</strong><br />

<strong>gevorderd</strong>


<strong>PHP</strong> <strong>gevorderd</strong><br />

Inhoudsopgave<br />

Inleiding! 4<br />

Voorkennis voor <strong>PHP</strong> & SQL! 4<br />

De werking van een <strong>PHP</strong>-module op een webserver! 5<br />

String-bewerkingen! 6<br />

<strong>PHP</strong> str_replace () functie! 6<br />

<strong>PHP</strong> strlen () functie! 7<br />

Datum-bewerkingen! 10<br />

<strong>PHP</strong> datum()! 10<br />

Meer array mogelijkheden! 16<br />

Server Side Inclusions (SSI)! 21<br />

De include() functie! 21<br />

De require() functie! 21<br />

<strong>PHP</strong>_self als formulier-actie! 22<br />

<strong>PHP</strong> headers versturen! 23<br />

Acties pas na een klik uitvoeren! 23<br />

Folder functies! 24<br />

Meerder bestanden uit een map includen! 25<br />

Toepassingen! 26<br />

Toepassing1: Berekening met korting (if else)! 26<br />

Toepassing2a: Percentage berekening (for-loop)! 27<br />

Toepassing2b: Percentage berekening (while loop)! 28<br />

Toepassing3: Een groet op basis van het huidige tijd! 29<br />

Toepassing4: Arrays en tijd en datum gebruik! 29<br />

Toepassing5: Verschillende Arrays zoek acties! 29<br />

Toepassing6: Alfabetisch sorteren met arrays (for en if)! 31<br />

Toepassing7: Alfabetisch sorteren met arrays met functies! 33<br />

Toepassing8: Verschillende datum bewerkingen! 34<br />

Toepassing9: Score berekenen! 36<br />

© 2011 2


<strong>PHP</strong> <strong>gevorderd</strong><br />

Toepassing10: Gemiddelden berekenen uit een array! 37<br />

Toepassing11: Licentie controle! 38<br />

Toepassing12: Vul een iframe dmv een <strong>PHP</strong>-actie! 39<br />

Toepassing13: Header- mogelijkheden en keuze tussen CSS- bestanden! 40<br />

Toepassing14: Oppervlakte met afbeeldingen maken! 41<br />

© 2011 3


Inleiding<br />

Deze handleiding geeft de basis van <strong>PHP</strong>-programmeren. Het bevat tekst- (strings) en datum- en<br />

tijd-bewerkingen. Er worden tevens meer loops- en array- mogelijkheden toegelicht en in<br />

voorbeelden uitgewerkt. Ook het veilig maken en houden van de gegevens doormiddel komen aan<br />

bod.<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

De twee <strong>PHP</strong>- handleiding geven een goede basis voor het toepassen van <strong>PHP</strong> met de juiste<br />

gereedschappen om zelf meer functionaliteit aan een website toe te voegen.<br />

Het vinden van de juiste, simpele en eenduidige code voor een behoefte blijft een combi van: zelf<br />

bedenken of vinden in ander (online) handleidingen of forums. Na de twee beschikbare<br />

handleidingen en de juiste drive, zal het zeker moeten lukken :-)<br />

Voorkennis voor <strong>PHP</strong> <strong>gevorderd</strong><br />

Ervaring hebben met inzicht in het volgende moeten hebben:<br />

· HTML-code (en of XHTM).<br />

· Gebruik en installatie van een webservers en een databases<br />

(bijv: Apache als web-server, MySQL als database of gecombineerd in:<br />

XAMPP of MAMP)<br />

· Basiskennis van <strong>PHP</strong>.<br />

· Basis SQL-statements (query- syntax en database begrippen)<br />

© 2011 4


<strong>PHP</strong> <strong>gevorderd</strong><br />

De werking van een <strong>PHP</strong>-module op een webserver<br />

Ter opfrissing; <strong>PHP</strong> is een module die aan de server-kant werkt. De client krijgt uiteindelijk pure HTML-code<br />

toegestuurd waarmee een page wordt weergegeven. Hoe deze page tot stand is voor de client onzichtbaar.<br />

Hieronder staan wat gebeurt er als een php-webpagina wordt opvraagt door een client:<br />

1.<br />

Aan de client zijde wordt een verzoek<br />

gedaan naar een (php)webpagina op een<br />

bepaalde webserver, bijvoorbeeld:<br />

www.<strong>kerssies64.net</strong><br />

client<br />

7.<br />

De ontvangen code wordt<br />

ontvangen door de client.<br />

In de browser wordt deze<br />

omgezet in een leesbare<br />

pagina<br />

6.<br />

Het resultaat van de<br />

php-module wordt<br />

samengevoegd met<br />

eventueel aanwezige<br />

html-code. Deze code<br />

wordt door de<br />

webserver verstuurd<br />

naar de client<br />

2.<br />

De webserver zoekt deze pagina op<br />

in z’n filesysteem.<br />

3.<br />

Omdat het<br />

een .php pagina<br />

is, stuurt de<br />

webserver deze<br />

pagina naar de<br />

php-module.<br />

Deze module<br />

moet op de<br />

webserver zijn<br />

geïnstalleerd<br />

4.<br />

De php-module<br />

benaderd een<br />

database en voert<br />

hierop acties uit en<br />

geeft evt waarden<br />

terug<br />

webserver<br />

.php<br />

php-module<br />

5.<br />

De php-module<br />

voert het phpscript<br />

uit en geeft<br />

het resultaat terug<br />

aan de webserver<br />

© 2011 5


String-bewerkingen<br />

Er zijn veel bewerkingen mogelijk op teksten (strings). Enkele worden in een voorbeeld<br />

weergegeven. Daarnaast worden van veel gebruikte bewerkingen de syntax en een beschrijving<br />

gegeven.<br />

<strong>PHP</strong> str_replace () functie<br />

De str_replace () functie vervangt sommige karakters met een andere karakters in een string.<br />

Deze functie werkt door de volgende regels:<br />

· Als het te zoeken string een serie is, keert het een serie terug<br />

· Als het te zoeken string een serie is, vind en vervang wordt gepresteerd met elk serieelement<br />

· Als allebei vinden en zijn series, en vervangen hebben minder elementen dan vinden vervangen, zal<br />

een leeg string worden gebruikt zoals vervangen<br />

· Als de vondst een serie is en is een string vervangt, vervang string zal voor elke vondstwaarde<br />

worden gebruikt<br />

Syntaxis<br />

str_replace (vind, vervang, string, telling_aantal_gevonden)<br />

Let op: Deze functie is case-sensitive. gebruik str_ireplace () om een case-insensitive onderzoek<br />

uit te voeren.<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

Nota: Deze functie is binair-veilig.<br />

Voorbeeld 1:<br />


Voorbeeld 3:<br />

In dit voorbeeld wordt str_replace () gebruikt om tekst in een array te veranderen<br />

<br />

De output van de code zal zijn:<br />

Array<br />

(<br />

[0] => kerssies64<br />

[1] => the best<br />

[2] => applying knowlegde<br />

)<br />

<strong>PHP</strong> strlen () functie<br />

Strlen () functie geeft de lengte van een string terug. Dus, het aantal karakters wordt geteld<br />

Syntaxis<br />

strlen(string)<br />

Voorbeeld:<br />


Hieronder volgt een tabel met string- beweringen met de syntax en een beschrijving. NB: Grijze<br />

tekst in de syntax is optioneel.<br />

Bewerking Syntax en beschrijving<br />

str_repeat() str_repeat(string,aantal-herhalingen)<br />

string een aantal maal herhalen<br />

substr_count() substr_count(string,substring,start-pos,lengte)<br />

tel het aantal maal dat een string in een andere string<br />

voorkomt.<br />

str_ireplace() str_ireplace(vind,vervang,string,aantal vervangingen)<br />

vervangt een karakter in een string<br />

strstr() strstr(string,zoek)<br />

geeft de rest van de string na de gezochte string weer<br />

stristr() stristr(string,zoek)<br />

geeft het gezochte word en de rest van de string weer.<br />

str_split() str_split(string,aantal-karakters)<br />

plaatst gropejes karakters van een string in een array<br />

str_word_count() str_word_count(string,return,char)<br />

return:<br />

0 - Standaard. Aantal woorden dat gevonden is<br />

1 – Geeft een array met de woorden uit de string<br />

2 – Geeft een array waarbij de key [x] een waarde bevat van<br />

de karakter-positie in de string<br />

explode() explode(scheidings-karakterer,string,max aantal array-keys)<br />

join()<br />

implode()<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

Breekt een string op in een array<br />

join(scheidingsteken,array)<br />

implode(scheidingsteken,array)<br />

Combineert array warden tot een string. Standard<br />

scheidingsteken is een ‘spatie’<br />

strncmp() strcasecmp(string1,string2)<br />

vergelijk twee strings en geeft het aantal afwijkende karakters<br />

© 2011 8


Bewerking Syntax en beschrijving<br />

chop()<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

chop(string,charlist)<br />

rtrim()<br />

haalt speciale tekens achter een string weg; bijv: \0, \n, \r, \t<br />

of “ “<br />

strtolower() strtolower(string)<br />

string naar kleine letters<br />

strtoupper() strtoupper(string)<br />

string naar grote letters<br />

ucfirst() ucfirst(string)<br />

De eerste letter in een string word teen hoofdletter<br />

ucwords() ucwords(string)<br />

elke eerste letter van een word in een string naar een<br />

hoofdletter<br />

money_format() money_format(string,number)<br />

maakt van een string een geldbedrag met eenheid ervoor<br />

Voor meer bewerkingen wordt verwezen naar andere (online) handleidingen.<br />

© 2011 9


Datum-bewerkingen<br />

Naast string functies zijn er uiteraard ook functies nodig om datum en tijd gegevens op te vragen<br />

en bewerken. Uiteraard zullen ook met data en tijdstippen berekeningen gemaakt worden.<br />

Timestamp<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

Timestamp is het aantal seconden dat sinds 1 Januari, 1970 bij 00:00: 00 GMT gepasseerd zijn.<br />

Dit wordt ook wel de Unix-timestamp genoemd.<br />

<strong>PHP</strong> datum()<br />

De datum () functie specificeert welk format data en/of tijd krijgen. Het gebruikt karakters om<br />

datum en tijdformaten aan te geven.<br />

datum (formaat, optie-timestamp)<br />

formaten voor datum en tijd zijn hieronder met een letter weergegeven:<br />

· D - de dag van de maand (van 01 tot 31)<br />

· D - een tekstuele vertegenwoordiging van een dag (drie brieven)<br />

· j - de dag van de maand zonder belangrijke nul (1 tot 31)<br />

· l - („L in kleine letters“) - een volledige tekstuele vertegenwoordiging<br />

· van een dag<br />

· N - Numerieke vertegenwoordiging ISO-8601 van een dag<br />

· (1 voor Maandag door 7 voor Zondag)<br />

· S - het Engelse rangschikkende achtervoegsel voor de dag van de maand<br />

· (2 karakters st, Nd, rd of Th. De werken goed met j)<br />

· w - een numerieke vertegenwoordiging van de dag<br />

· (0 voor Zondag door 6 voor Zaterdag)<br />

· z - de dag van het jaar (van 0 door 365)<br />

· W - het ISO-8601 weekaantal jaar (weken die op Maandag beginnen)<br />

· F - een volledige tekstuele vertegenwoordiging van een maand<br />

· (Januari door December)<br />

· m - een numerieke vertegenwoordiging van een maand (van 01 tot 12)<br />

· M - een korte tekstuele vertegenwoordiging van een maand (drie brieven)<br />

· n - een numerieke vertegenwoordiging van een maand,<br />

· zonder belangrijke nul (1 tot 12)<br />

· t - het aantal dagen in de bepaalde maand<br />

· L - of het een schrikkeljaar is (1 als het een schrikkeljaar is, 0 anders)<br />

· o - het ISO-8601 jaaraantal<br />

· Y - een vier cijfervertegenwoordiging van een jaar<br />

· y - een vertegenwoordiging met twee cijfers van een jaar<br />

· a - am of p.m. In kleine letters<br />

· A - AM of PM In hoofdletters<br />

· B - de tijd van Internet van het Monster (000 tot 999)<br />

· g - 12 uurformaat van een uur (1 tot 12)<br />

· G - het formaat van 24 uur van een uur (0 tot 23)<br />

· h - 12 uurformaat van een uur (01 tot 12)<br />

· H - het formaat van 24 uur van een uur (00 tot 23)<br />

· i - minuten met een nul (00 tot 59)<br />

· s - seconden, met een nul (00 tot 59)<br />

· e - het timezone herkenningsteken<br />

· (Voorbeelden: UTC, Atlantische Oceaan/de Azoren)<br />

© 2011 10


· I (hoofdletter i) - of de datum in de tijd is van zomertijd<br />

· (1 als Zomertijd, 0 anders)<br />

· O - Verschil aan de tijd van Greenwich (GMT) in uren (Voorbeeld: +0100)<br />

· T - het plaatsen Timezone van de <strong>PHP</strong> machine (Voorbeelden: EST, MDT)<br />

· Z - Timezone die in seconden wordt gecompenseerd.<br />

· De compensatie ten westen van UTC is negatief,<br />

· en het compensatieoosten van UTC is positief (- 43200 tot 43200)<br />

· c - ISO-8601 dateren (b.v. 2004-02-12T15: 19: 21+00: 00)<br />

· r - de geformatteerde datum RFC 2822<br />

· (b.v. Thu, 21 het 16:01 van Dec 2000: 07 +0200)<br />

· U - de seconden dat het Tijdvak van Unix<br />

· (1 Januari het 00:00 van 1970: 00 GMT)<br />

Datum en tijd mogelijkheden:<br />

<br />

De uitkomst toen. (een mogelijke resultaat):<br />

Resultaten met date():<br />

Tuesday<br />

Tuesday 24th of January 2006 02:41:22 PM<br />

Okt 3,2008 was een Friday<br />

Tue, 24 Jan 2006 14:41:22 CET<br />

2008-10-03T00:00:00+0100<br />

Resultaat van gmdate():<br />

Tuesday<br />

Tuesday 24th of January 2006 01:41:22 PM<br />

Okt 3,2008 was een Thursday<br />

Tue, 24 Jan 2006 13:41:22 GMT<br />

2008-10-02T23:00:00+0000<br />

Een voorbeeld van idate():<br />

<br />

Het resultaat:<br />

2008<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

© 2011 11


<strong>PHP</strong> <strong>gevorderd</strong><br />

Format opties:<br />

· B - het Monster slaat/de Tijd van Internet<br />

· D -dag van de maand<br />

· h - Uur (12 uurformaat)<br />

· H - Uur (24 uurformaat)<br />

· i - Notulen<br />

· I - winst 1 als DST (zomertijd), 0 anders wordt geactiveerd<br />

· L - winst 1 voor schrikkeljaar, 0 anders<br />

· m - het aantal van de Maand<br />

· s - Seconden<br />

· t - Dagen in huidige maand<br />

· U - Seconden sinds het Tijdvak van Unix<br />

· (1 Januari het 00:00 van 1970: 00 GMT)<br />

· w - Dag van de week (Sunday=0)<br />

· W - ISO-8601 weekaantal jaar (weekbegin op Maandag)<br />

· y - Jaar (1 of 2 cijfers)<br />

· Y - Jaar (4 cijfers)<br />

· z - Dag van het jaar<br />

· Z - Timezone die in seconden wordt gecompenseerd<br />

Script met het plaatsen van de huidige tijd in een variabele, waarna het in een echo wordt<br />

weergegeven:<br />

<br />

Het resultaat is:<br />

1138618081<br />

Mon January 30 2006<br />

Meer datum bewerkingen staan in het hoofdstuk ‘Toepassingen’.<br />

© 2011 12


<strong>PHP</strong> <strong>gevorderd</strong><br />

Hieronder volgt een tabel met string-beweringen met de syntax en een beschrijving. NB: Grijze<br />

tekst in de syntax is optioneel.<br />

Bewerking Syntax en beschrijving<br />

checkdate() checkdate(maand,dag,jaar)<br />

controleert de datum op mbt juiste waarden, geeft:<br />

true of false<br />

date_default_timezone_get date_default_timezone_get(void)<br />

()<br />

geeft de tijdszone terug in tekst<br />

date_default_timezone_set date_default_timezone_set(timezone)<br />

()<br />

verander de tijdszone. Bijv: "Europe/Paris"<br />

date() date(format,timestamp)<br />

zet de huidige datum en/of tijd<br />

getdate() getdate(timestamp)<br />

Plaatst systeem datum en tijd gegevens in een array<br />

met benoemde elementen<br />

[seconds] - seconden<br />

[minutes] - minuten<br />

[hours] - uren<br />

[mday] – dag van de maand<br />

[wday] - dag van de week<br />

[year] - jaar<br />

[yday] – dag van het jaar<br />

[weekday] – weekdag, zoals: monday (maandag)<br />

[month] - naam van de maand<br />

gettimeofday() gettimeofday(return_float)<br />

geeft een array met huidige tijdsindicaties<br />

[sec] - seconden since de Unix tijdvak<br />

[usec] - microseconden<br />

[minuteswest] - minuten west van Greenwich<br />

[dsttime] - type voor dst correction<br />

idate() idate(format,timestamp)<br />

Zet een locale tijd al seen integer<br />

mktime() mktime<br />

(uur,minuut,seconde,maand,dag,jaar,daylightSavingTi<br />

me)<br />

berekend de juiste datum en tijd bij foutieve invoer.<br />

date("M-d-Y",mktime(0,0,0,14,1,2001))<br />

© 2011 13


<strong>PHP</strong> <strong>gevorderd</strong><br />

Bewerking Syntax en beschrijving<br />

strftime() strftime(format,timestamp)<br />

Zet de locale tijd in een eigen format<br />

%a - afgekorte weekdag naam<br />

%A - volledige weekdag naam<br />

%b - afgekorte maand naam<br />

%B - volledige maand naam<br />

%c - aangewezen datum en tijdvertegenwoordiging<br />

%C - eeuwaantal (het jaar dat door 100 wordt verdeeld, van 00 tot<br />

99)<br />

%d -dag van de maand (01 tot 31)<br />

%D - zelfde zoals %m/%d/%y<br />

%e - dag van de maand (1 tot 31)<br />

%g - als %G, maar zonder de eeuw<br />

%G - jaar dat met 4 digits aan het de weekaantal beantwoordt van<br />

ISO<br />

(zie %V).<br />

%h - zelfde zoals %b<br />

%H - uur, dat een 24 uur klok gebruikt (00 tot 23)<br />

%I - uur, dat een 12 uur klok gebruikt (01 tot 12)<br />

%j - dag van het jaar (001 tot 366)<br />

%m - maand (01 tot 12)<br />

%M - minuut<br />

%n - newline karakter<br />

%p - am of pm. volgens de huidige tijd<br />

%r - tijd met am- of pm-aantekening<br />

%R - tijd in 24 uur notering<br />

%S - seconde<br />

%t – het tab karakter<br />

%T - huidige tijd, gelijk aan %H: %M: %S<br />

%u - weekdag als aantal (1 tot 7), Monday=1. Het waarschuwing:<br />

In Sun Solaris Sunday=1<br />

%U - weekaantal van het huidige jaar, om te beginnen met de eerste<br />

Zondag als eerste dag van de eerste week<br />

%V - ISO 8601 weeknummer van het huidige jaar (01 tot 53), waarbij<br />

week 1 de eerste week is die minstens 4 dagen in het huidige<br />

jaar is, en met maandag als eerste dag van de week heeft<br />

%W - weeknummer van het huidige jaar, dat begint met een<br />

maandag als eerste dag van de eerste week<br />

%w - dag van de week als decimaal, Sunday=0<br />

%x - aangewezen datumvertegenwoordiging zonder de tijd<br />

%X - aangewezen tijdvertegenwoordiging zonder de datum<br />

%y - jaar zonder een eeuw (van 00 tot 99)<br />

%Y - jaar met inbegrip van de eeuw<br />

%Z of %z - tijdzone of naam of afkorting<br />

%% - letterlijk het %-karakter<br />

time() time(void)<br />

Geeft de huidige datum en tijd terug<br />

© 2011 14


<strong>PHP</strong> <strong>gevorderd</strong><br />

Bewerking Syntax en beschrijving<br />

strptime() strptime(date,format)<br />

Geeft een array terug met delen van datum en tijd<br />

[tm_sec] - seconden (0-61)<br />

[tm_min] - minuten (0-59)<br />

[tm_hour] - uur (0-23)<br />

[tm_mday] - dag van de maand (1-31)<br />

[tm_mon] - maanden sinds Januari (0-11)<br />

[tm_year] - jaren sinds 1900<br />

[tm_wday] - dagen sinds Zondag (0-6)<br />

[tm_yday] - dagen sinds 1 Januari (0-365)<br />

[unparsed] - het datumdeel dat niet werd herkend<br />

Voor meer bewerkingen wordt verwezen naar andere (online) handleidingen.<br />

Voorbeelden:<br />

Check op tijd, waarna er een begroeting volgt:<br />

<br />

<br />

<br />

<br />

<br />

Datum-functies uit een array:<br />

<br />

<br />

<br />

<br />

<br />

© 2011 15


<strong>PHP</strong> <strong>gevorderd</strong><br />

Meer array mogelijkheden<br />

De arrays (series) zijn meerdere waarden in één variabele, die ook bewerkt kunnen worden met<br />

functies. <strong>PHP</strong> ondersteunt zowel eenvoudige als multi - dimensionele arrays. Veel speciale arrays<br />

die veel gebruikt worden zijn $_GET en $_POST.<br />

Voor eigen arrays volgen hieronder een lijst met array-functies:<br />

Bewerking Syntax en beschrijving<br />

array() array(sleutel => waarde)<br />

Maakt een array aan<br />

$a=array("a"=>"Rood","b"=>"Wit","c"=>"Blauw");<br />

$a=array("Rood","Wit","Blauw");<br />

array_chunk() array_chunk(array,grootte,behoud_key)<br />

Splits teen array op in blokken<br />

print_r(array_chunk($array,2));<br />

print_r(array_chunk($array,2,true));<br />

array_combine() array_combine(array1,array2)<br />

Voegt twee arrays samen<br />

print_r(array_combine($array1,$array2));<br />

array_count_values() array_count_values(array)<br />

Telt hoe vaak warden voorkomen<br />

print_r(array_count_values($array));<br />

array_diff() array_diff(array1,array2,array3...)<br />

Vergelijt arrays tov de eerste en geeft welek niet<br />

voorkomen<br />

print_r(array_diff($array1,$aarray2,array3));<br />

array_diff_assoc() array_diff_assoc(array1,array2,array3...)<br />

Vergelijkt arrays tov elkaar<br />

print_r(array_diff_assoc($array1,$array2,…));<br />

array_diff_ukey() array_diff_ukey(array1,array2,array3...,<br />

functie)<br />

Vergelijkt array keys tov de eerste array<br />

array_fill() array_fill(start,aantal,waarde)<br />

Vult een aantal elementen van array met warden<br />

$a=array_fill(2,3,"Oranje");<br />

array_filter array_filter(array,functie)<br />

Filtert waarden uit een array op basis van eeen eigen<br />

functie<br />

© 2011 16


<strong>PHP</strong> <strong>gevorderd</strong><br />

Bewerking Syntax en beschrijving<br />

array_flip() array_flip(array)<br />

Verwisselt de elementwaarden en de sleutels in een array<br />

array_intersect() array_intersect(array1,array2,array3...)<br />

Vergelijkt arraywaarden tov van de eerste array en geeft de<br />

waarden en de sleutel<br />

Variaties:<br />

_assoc, _key, _uassoc en _ukey<br />

array_key_exist() array_key_exists(sleutel,array)<br />

Controleert of een sleutel in een array bestaat<br />

array_keys() array_keys(array,value)<br />

Geeft een array met de sleutels van een gegeven array<br />

array_map() array_map(function,array1,array2,...)<br />

Stuurt elke waarde in array(s) naar een eigen functie<br />

array_merge() array_merge(array1,array2,array3...)<br />

Voegt arrays samen met nieuwe sleutels<br />

array_merge_recursiv<br />

e()<br />

array_merge_recursive(array1,array2,array3...)<br />

Voegt arrays samen, bij dubbele sleutel komt er en nieuwe<br />

sub-array die de dubbele waarden bevat<br />

Array (<br />

[a] => Rood<br />

[b] => Array ( [0] => Wit [1] => Oranje )<br />

[c] => Blauw<br />

)<br />

Array_multisort() array_multisort(array1,sortering,sortingstype,array2,...)<br />

sortering:<br />

· SORT_ASC standaard. A-Z<br />

· SORT_DESC. Z-A<br />

type:<br />

· SORT_REGULAR standaard.<br />

· SORT_NUMERIC<br />

· SORT_STRING<br />

Array_pad() array_pad(array,aantal_elementen,start_element)<br />

neemt een gespecificeerd aantal elementen, met een<br />

gespecificeerde waarde, in een array op.<br />

print_r (array_pad ($array, 5.0));<br />

© 2011 17


<strong>PHP</strong> <strong>gevorderd</strong><br />

Bewerking Syntax en beschrijving<br />

array_pop() array_pop(array)<br />

Verwijdert het laatste element van een array<br />

array_product() array_product(array)<br />

Berekent het product van de waarden (cijfers) in een<br />

array<br />

array_push() array_push(array,waarde1,waarde2...)<br />

Plaatst één of meerdere elementen aan het eind van een<br />

array<br />

array_rand() array_rand(array,aantal)<br />

Geeft één of meerdere willekeurige sleutels van een<br />

array terug<br />

array_reduce() array_reduce(array,functie,initieel)<br />

Geeft een array-waarde terug in een string, doormiddel<br />

van een gebruiker- gedefinieerde functie<br />

array_reverse() array_reverse(array,bewaar_sleutel)<br />

Geeft een array in de omgekeerde orde terug.<br />

Bewaar_sleutel: true / false<br />

array_search() array_search(waarde,array,strict)<br />

Zoekt in een array naar een bepaalde waarde en geeft de<br />

sleutel terug.<br />

Strict: true / false (standaard) voor cijfers.<br />

array_shift() array_shift(array)<br />

Verwijdert het eerste element uit een array, en geeft de<br />

waarde van het verwijderde element terug<br />

array_slice() array_slice(array,start_sleutel,lengte,bewaar)<br />

Selecteerd geselecteerde delen uit een array<br />

Bewaar: true / false (standaard) – om de sleutel te<br />

behouden<br />

array_splice() array_splice(array,start,lengte,arraynieuw)<br />

Verwijdert gespecificeerde elementen van een array en<br />

vervangt ze met waarden uit een ander array<br />

array_splice($a1,0,3,$a2);<br />

array_sum() array_sum(array)<br />

Geeft de som in een array- waarden (cijfers) terug<br />

array_udiff() array_udiff(array1,array2,array3..,functie)<br />

Vergelijkt array- waarden in een gebruiker-gemaakte<br />

functie en geeft een array terug<br />

array_udiff_assoc()<br />

array_udiff_uassoc()<br />

array_uintersect()<br />

array_uintersect_assoc()<br />

array_uintersect_uassoc<br />

()<br />

array_udiff_assoc(array1,array2,array3...,<br />

functie)<br />

Vergelijkt seriesleutels, en vergelijkt array- waarden in<br />

een gebruiker-gemaakte functie, en geeft een array<br />

terug<br />

array_uintersect(array1,array2,array3...,<br />

functie)<br />

Vergelijkt seriewaarden in een gebruiker-gemaakte<br />

functie (geeft een cijfer terug) en geeft een array terug<br />

met de verschillen<br />

array_unique() array_unique(array)<br />

Verwijdert dubbele waarden uit een array<br />

© 2011 18


Bewerking Syntax en beschrijving<br />

array_unshift() array_unshift(array,waarde1,waarde2,waarde3...)<br />

Voegt één of meerdere elementen aan het begin van een<br />

array toe en vervangt de elementnummers<br />

array_values() array_values(array)<br />

Geeft alle waarden uit een array terug in een nieuwe array<br />

array_walk() array_walk(array,function,parameter...)<br />

Past een gebruikersfunctie op elke waarde van een array<br />

toe<br />

Parameter om een eigen waarde mee te nemen.<br />

function zien($waarde,$sleutel,$p)<br />

{ echo "$sleutel $p $value";}<br />

$a=array("a"=>"H","b"=>"Q","c"=>"1");<br />

array_walk($a,"zien","met de waarde");<br />

array_walk_recursive<br />

()<br />

array_walk_recursive(array,functie,<br />

parameter)<br />

Past een gebruikersfunctie op elk onderdeel van een array<br />

toe voor de sleutels en hun waarden. Ook diepere arrays<br />

zijn met deze functie mogelijk (array in een array)<br />

arsort() arsort(array, sorteertype)<br />

Sorteert een array- waarden in omgekeerde volgorde en<br />

behoudt de indexvolgorde.<br />

Sorteert een serie in omgekeerde orde<br />

· SORT_REGULAR - Standaard.<br />

· SORT_NUMERIC<br />

· SORT_STRING<br />

SORT_LOCALE_STRING<br />

waarden in locale settings.<br />

asort() asort(array, sorteertype)<br />

Sorteert een array en behoudt de indexvolgorde<br />

compact() compact(var1,var2...)<br />

Maakt een array die variabelen en hun waarden.<br />

$vnaam = "Peter";<br />

$anaam = "Klaasen";<br />

$leeft= "35";<br />

$r= compact("vnaam", "anaam", "leeft");<br />

print_r($r);<br />

count()<br />

sizeof()<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

sizeof(array1,array2,mode)<br />

Telt het aantal elementen in een array, of eigenschappen in<br />

een object<br />

· 0 - Default. Ziet geen multidimensional arrays<br />

(arrays in arrays)<br />

· 1 – Ziet wel multidimensional arrays<br />

Geeft het huidige element in een array terug<br />

current()<br />

pos ()<br />

each() Geeft het huidige sleutel en waardepaar van een serie terug<br />

end() Plaatst de interne wijzer van een serie aan zijn laatste<br />

element<br />

extract() De variabelen van de invoer in de huidige symboollijst van<br />

een serie<br />

© 2011 19


<strong>PHP</strong> <strong>gevorderd</strong><br />

Bewerking Syntax en beschrijving<br />

in_array() Controleert als een gespecificeerde waarde in een serie<br />

bestaat<br />

key() Haalt een sleutel van een serie.<br />

krsort() krsort(array,sorteertype)<br />

Sorteert een array op de sleutel in omgekeerde volgorde.<br />

ksort() ksort(array, sorteertype)<br />

Sorteert een serie op de sleutel.<br />

list() list(var1,var2...)<br />

Wijst variabelen uit een array toe aan een lijst.<br />

list($a, $b, $c) = $mijn_array;<br />

natcasesort() natcasesort(array)<br />

Sorteert een array met het “natuurlijke algoritme” en<br />

behoud de sleutels-waarden. Hoofdlettergevoelig<br />

natsort() natsort(array)<br />

Sorteert een array met het “natuurlijke algoritme” en<br />

behoud de sleutels-waarden.<br />

next() next(array)<br />

Verplaatst de interne arraywijzer naar de volgende positie.<br />

echo current($variabele);<br />

echo next($variabele);<br />

prev () prev(array)<br />

Verplaatst de interne arraywijzer terug.<br />

range() range(low,high,step)<br />

Maakt een array die specifieke elementen bevat.<br />

$waarden = range(0,5);<br />

reset() reset(array)<br />

Plaatst de interne wijzer van een array naar het eerste<br />

element.<br />

rsort () rsort(array, sorteertype)<br />

Sorteert een serie in omgekeerde orde<br />

· SORT_REGULAR - Standaard.<br />

· SORT_NUMERIC<br />

· SORT_STRING<br />

· SORT_LOCALE_STRING waarden in locale settings.<br />

shuffle() shuffle(array)<br />

Schuifelt een array in een willekeurige volgorde.<br />

sort() sort(array, sorteertype)<br />

Sorteert een array.<br />

uasort() uasort(array, sorteertype)<br />

Sorteert array- waarden met een gebruiker- gedefinieerde<br />

functie en behoudt indexvereniging.<br />

uksort() uksort(array, sorteertype)<br />

Sorteert array sleutels met een gebruiker- gedefinieerde<br />

functie en behoudt indexvereniging.<br />

usort() usort(array, sorteertype)<br />

Sorteert array sleutels met een gebruiker- gedefinieerde<br />

functie en behoudt indexvereniging.<br />

Voor meer bewerkingen wordt verwezen naar andere (online) handleidingen.<br />

© 2011 20


Server Side Inclusions (SSI)<br />

SSI wordt gebruikt om functies, headers, footers en elementen te maken die in meerdere pages<br />

wordt hergebruikt.<br />

Het is mogelijk om de inhoud van een bestand te importeren in <strong>PHP</strong>, voordat de rest van het <strong>PHP</strong>-<br />

script wordt uitgevoerd. Dit kan veel tijd en wijzigingsgemak geven.<br />

De include() functie<br />

In de onderstaande HTML- code wordt een <strong>PHP</strong>- bestand ingevoegd:<br />

<br />

<br />

<br />

Welkom op <strong>kerssies64.net</strong><br />

Tekst in een pragraaf<br />

<br />

<br />

menu.php bevat de volgende code:<br />

<br />

<br />

Home |<br />

Over Ons |<br />

Contact<br />

<br />

<br />

Het is mogelijk om het menu ook in andere web- of php- pages op te vragen.<br />

De require() functie<br />

De require functie is gelijk aam de include functie, maar gaat anders om met fouten.<br />

Include geeft een waarschuwing, terwijl de require een fatal-error geeft. Het script stopt direct...<br />

<br />

<br />

<br />

<br />

<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

Beide geven een melding, maar de require functie zal de echo niet meer uitvoeren, terwijl de<br />

include functie dit wel zal doen<br />

© 2011 21


<strong>PHP</strong>_self als formulier-actie<br />

In de volgende code wordt getoont hoe een html-formulier niet een specifiek bestand aanroept om<br />

via POST of GET zijn waarden aan af te geven maar met $<strong>PHP</strong>_SELF<br />

<br />

<br />

<br />

Persoonlijke INFO<br />

<br />

<br />


<strong>PHP</strong> headers versturen<br />

Een php-header maakt het mogelijk om een website, eigen web-page of document aan te roepen<br />

in plaats van META te gebruiken. Door gebruik te maken van de functie header() kunnen sessies<br />

worden behouden.<br />

!!! De functie header() kan alleen worden aangeroepen voordat de browser gegevens op het<br />

scherm heeft gezet. Dus, voor de html-tag of een php-echo of -print actie.<br />

header('Location: http://www.voorbeeld.com/');<br />

of<br />

header('Location: map/bestand.php’);<br />

Acties pas na een klik uitvoeren<br />

In heel veel gevallen moet er pas iets worden weergegeven in een web-page wanneer er op een<br />

submit-knop is geklikt, waarna andere weergaves juist verdwijnen. Dit kan je met de volgende<br />

code doen waarin de functie isset() is gebruikt:<br />

<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

if (isset($_POST[submitknop]))<br />

{<br />

echo “de knop is geklikt”;<br />

}<br />

if ( ! isset($_POST[submitknop]))<br />

{<br />

echo “de knop is NIET geklikt”;<br />

}<br />

© 2011 23


<strong>PHP</strong> <strong>gevorderd</strong><br />

Folder functies<br />

De folderfuncties staat toe om informatie over folders en hun inhoud op te vragen. Dit kan omdat<br />

<strong>PHP</strong> op de server werkt. Er is geen installatie nodig om deze functies te gebruiken. JavaScript kan<br />

geen gegevens opvragen van de server, omdat dat script aan de client-kant wordt uitgevoerd.<br />

Functie Beschrijving<br />

chdir () chdir(andere_map)<br />

Verandert de huidige folder<br />

chdir("afbeelding");<br />

chroot () chroot (map)<br />

Verandert de root-folder van het huidige proces<br />

dir () dir(map)<br />

Opent een folder en keert een object terug<br />

$dir = dir("afbeelding");<br />

opendir () opendir(map,context)<br />

Opent een folder behandeling<br />

opendir($map);<br />

closedir () closedir(map_stroom)<br />

Sluit een folder behandeling<br />

closedir($map);<br />

getcwd () getcwd()<br />

Keert de huidige folder terug<br />

echo getcwd();<br />

Functie Beschrijving<br />

readdir () readdir(map_stroom)<br />

Keert een ingang van een folder behandeling terug<br />

while (($bestand = readdir($map)) !== false)<br />

rewinddir () rewinddir(map_stroom)<br />

Stelt een folder behandeling terug (reset)<br />

rewinddir($map);<br />

scandir () scandir(dmap,sortering,context)<br />

Geeft een lijst met de bestanden en folders in een<br />

folder<br />

print_r(scandir("afbeelding"));<br />

voorbeelduitkomst:<br />

Array<br />

(<br />

[0] => .<br />

[1] => ..<br />

[2] => Apple.jpg<br />

[3] => Linux.jpg<br />

[4] => MS.gif<br />

)<br />

Voor het gebruik van deze functies en meer folder-functies wordt verwezen naar andere (online)<br />

handleidingen.<br />

© 2011 24


Een stukje code om de inhoud van een map weer te geven:<br />

<br />

<br />

<br />

Het resultaat ziet er dan zo:<br />

filename: .<br />

filename: ..<br />

filename: Apple.gif<br />

filename: Linux.gif<br />

filename: werk_in_uitvoering.jpg<br />

filename: Windows.gif<br />

Door een if toe te voegen in de while-loop kunnen de punt en dubbele-punt worden verwijdert.<br />

Meerder bestanden uit een map includen<br />

Wanneer er meerder bestanden geinclude moeten worden, is het omslachtig om elk bestand apart<br />

aan te roepen. Het is eenvoudiger om een specifieke map aan te roepen en alle bestanden daarin<br />

include. Dit kan als volgt:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

include alle bestanden in een folder<br />

<br />

<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

© 2011 25


Toepassingen<br />

Toepassing1: Berekening met korting (if else)<br />

De code berekent een te betalen bedrag met of zonder korting. De php- page met de naam<br />

index.php in de publicatie folder van de webserver en bevat de volgende code:<br />

<br />

<br />

LaserShoot <br />

<br />

<br />

<br />

<br />

LaserShoot Rekening<br />

kosten 14,50 / uur (lidmaatschapskorting 10%)<br />

Aantal personen:<br />

<br />

Aantal uur:<br />

<br />

Lidmaatschapskaart:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

}<br />

$korting ="ja";<br />

$kosten = (14.50*$aantal*$uren*0.9);<br />

else<br />

{<br />

$korting ="nee";<br />

$kosten = (14.50*$aantal*$uren);<br />

}<br />

echo '';<br />

echo "de kosten zijn voor $aantal personen voor $uren uur zijn: ";<br />

echo round($kosten);<br />

echo "de korting is: $korting";<br />

echo "";<br />

© 2011 26


Toepassing2a: Percentage berekening (for-loop)<br />

De code vraagt om een jaarlijkse inleg, looptijd en een rente percentage.<br />

Uitkomst is een geldbedrag dat na het einde van de looptijd uitgekeerd moet worden.<br />

De html- page (index.html) in de publicatie folder van de webserver bevat de volgende code:<br />

<br />

<br />

Rente berekening<br />

<br />

<br />

<br />

<br />

Bereken van de totale rente over een gestelde periode<br />

Voer aantal jaar in: <br />

Voer rente in: <br />

Voer jaarlijkse inleg in:<br />

<br />

<br />

<br />

<br />

<br />

<br />

De php-page (rente.php) in de publicatie folder van de webserver bevat de volgende code:<br />

<br />

Rente berekening<br />

<br />

<br />

Rente berekenen<br />

<br />

<br />

<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

© 2011 27


Toepassing2b: Percentage berekening (while loop)<br />

De zelfde berekening, maar nu wordt er in plaats van een for-loop een while-loop gebruikt in de<br />

Het formulier kan er zo uitzien:<br />

<br />

<br />

Rente berekening<br />

<br />

<br />

<br />

<br />

Bereken van de totale rente over een gestelde periode<br />

Voer aantal jaar in:<br />

Voer rente in: <br />

Voer jaarlijkse inleg in:<br />

<br />

<br />

<br />

<br />

<br />

<br />

php-code:<br />

<br />

<br />

Rente berekening <br />

<br />

<br />

Rente berekenen<br />

<br />

<br />

<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

© 2011 28


Toepassing3: Een groet op basis van het huidige tijd<br />

De volgende php-page (index tijd.php) bepaald op basis van de huidige tijd welke groet gegeven<br />

moet worden. In de publicatie folder van de werbserver bevat het bestand de volgende code:<br />

<br />

<br />

<br />

<br />

<br />

Toepassing4: Arrays en tijd en datum gebruik<br />

De volgende php-page bepaald op basis van de huidige tijd welke groet gegeven moet worden. In<br />

de publicatie folder van de werbserver bevat het bestand de volgende code:<br />

<br />

<br />

<br />

<br />

<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

Toepassing5: Verschillende Arrays zoek acties<br />

De code laat de inhoud van een array zien, sorteert daarna de array en toon de inhoud daarna op<br />

een andere wijze. Er wordt een zoekactie geaddan door het formulier een het gevonden<br />

elementsnummer in de array wordt gegeven. Daarna worden willekeurige arraywaarden in een lijst<br />

met variabelen gezet en getoond. De php-page (arrays.php) in de publicatie folder van de<br />

werbserver en bevat de volgende code:<br />

© 2011 29


<strong>PHP</strong> <strong>gevorderd</strong><br />

<br />

<br />

<br />

Zoek acties<br />

Zoek elementnummer van een kleur (0 t/m5):<br />

<br />

<br />

<br />

<br />

<br />


<strong>PHP</strong> <strong>gevorderd</strong><br />

Toepassing6: Alfabetisch sorteren met arrays (for en if)<br />

De code vraagt om een extra naam, welke in een array wordt toegevoegd. Alle elementen van de<br />

array worden gesorteerd van A-Z, daarna a-z en tot slotte 0-9.<br />

De html-page (index.html) in de publicatie folder van de werbserver bevat de volgende code:<br />

<br />

<br />

Sorteren op alfabet<br />

<br />

<br />

<br />

<br />

Sorteer ingevoeerde naam en de gegevens in een Array<br />

Het sorteer resultaat zal zijn: eerst cijfers, vervolgens A-Z en daarna a-z.<br />

Voer een naam in:<br />

<br />

<br />

<br />

<br />

<br />

<br />

© 2011 31


<strong>PHP</strong> <strong>gevorderd</strong><br />

De php-page (alfabet.php) is in de publicatie folder van de werbserver en bevat de volgende code:<br />

<br />

<br />

Sorteren op alfabet<br />

<br />

<br />

Alfabetische volgorde<br />

Eerst cijfers, vervolgens A-Z en daarna a-z.<br />

<br />

<br />

<br />

© 2011 32


<strong>PHP</strong> <strong>gevorderd</strong><br />

Toepassing7: Alfabetisch sorteren met arrays met functies<br />

De php-page (alfabet-functie.php) zal de waarden in een array sorteren en weergeven. Het php-<br />

bestand bevat de volgende code:<br />

<br />

<br />

Sorteren op alfabet<br />

<br />

<br />

<br />

<br />

Sorteer ingevoeerde naam en de gegevens in een Array<br />

Het sorteer resultaat zal zijn: eerst cijfers, vervolgens 0-9-A-Z-a-z.<br />

Voer een naam in:<br />

<br />

<br />

<br />

<br />

Alfabetische volgorde<br />

Eerst cijfers, vervolgens 0-9-A-Z-a-z.<br />

<br />

<br />

<br />

© 2011 33


<strong>PHP</strong> <strong>gevorderd</strong><br />

Toepassing8: Verschillende datum bewerkingen<br />

De volgende code bevat een verzameling van verschillende datum bewerkingen. Zo wordt het<br />

datum-format van internationaal naar Europees en weer terug getoond op verschillende manieren.<br />

Ook wordt getoond hoe een formulier een datum kan weergeven met dropdown-input velden.<br />

<br />

<br />

datum conversies<br />

<br />

<br />

<br />

datum tijd waarden ophalen<br />

<br />

<br />

<br />

<br />


<strong>PHP</strong> <strong>gevorderd</strong><br />

<br />

<br />

NL-datum form<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

><br />

februari<br />

><br />

april<br />

><br />

juni<br />

><br />

augustus<br />

><br />

oktober<br />

><br />

december<br />

<br />

<br />

<br />


if (isset($_POST[datum]))<br />

{<br />

echo $_POST[dag].'-'.$_POST[maand].'-'.$_POST[jaar];<br />

}<br />

<br />

verschil data<br />

<br />

<br />

<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

Toepassing9: Score berekenen<br />

Hieronder is een simpele bewerking gegeven om met gebruikers input een berekening uit te<br />

voeren. De invoer gebeurt met HTML-formulieren, de berekening wirdt door de <strong>PHP</strong>-module<br />

uitgevoer en in HTML-code gezet en naar de webserver teruggestuurd, zodat een cliënt-browser<br />

pure HTML krijgt:<br />

<br />

<br />

Cijfer berekening<br />

<br />

<br />

<br />

<br />

Bereken van de totale rente over een gestelde periode<br />

punten: <br />

totaal:<br />

<br />

<br />

<br />

<br />

<br />

<br />

© 2011 36


De score wordt berekend in doormiddel van de volgende code:<br />

<br />

<br />

<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

echo ' Het aantal punten is: ';<br />

echo $punt;<br />

echo ' Het cijfer is: ';<br />

echo $result;<br />

echo '';<br />

{<br />

echo 'Goed gedaan';<br />

}<br />

{<br />

echo 'Niet goed...';<br />

}<br />

Toepassing10: Gemiddelden berekenen uit een array<br />

In de volgende code worden waarden uit een array met een while loop bij elkaar opgeteld, waarna<br />

het gemiddelde wordt berekend.<br />

<br />

<br />

<br />

© 2011 37


Toepassing11: Licentie controle<br />

In de code hieronder (licentie.php) wordt een sleutels gegenereerd op basis van een naam. Nu<br />

wordt de sleutel direct op het scherm die ingevoerd moet worden. Normaal zal de eindgebruiker<br />

deze de gebruikersnaam en de licentie -sleutel via een ander weg ontvangen en in moeten voeren<br />

<br />

Licentie<br />

<br />

<br />

Licentie controle<br />

<br />

<br />

<br />

organisatie:<br />

<br />

<br />

<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

© 2011 38


Toepassing12: Vul een iframe dmv een <strong>PHP</strong>-actie<br />

In het index.php bestand hieronder wordt op basis van een php waarde een iframe gevuld met<br />

een externe webpage. Dit kan uiteraard ook een webpage op de server zelf zijn.<br />

Met deze techniek is het mogelijk om vanuit <strong>PHP</strong> in één of meerdere iframes nieuwe of andere<br />

content weer te geven.<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />


Toepassing13: Header- mogelijkheden en keuze tussen CSS-<br />

bestanden<br />

Het eerste stukje header wat hieronder is weergegeven hoe in de adresbalk het icoontje<br />

vervangen kan worden door een eigen icoon. Daarna staan er twee regels die zoekgegevens bevat<br />

voor zoekmachines, zodat uw site beter te vinden is. Uiteraard kan de inhoud van de ‘meta-<br />

waarden’ ook vanuit een database worden gehaald.<br />

Het tweede stukje code vraagt de browserinformatie op van de bezoeker. Uit deze informatie<br />

zoeken we het stukje tekst: ‘MSIE’. Op basis hiervan bepalen we welk CSS-bestand geladen moet<br />

worden. Dit is nodig om dat de verschillende browsers niet op de zelfde manier omgaan met CSS-<br />

informatie. Mozilla en Apple houden zich aan de internationale standaarden. Microsoft moet<br />

natuurlijk afwijken...<br />

<br />

<br />

<strong>PHP</strong> <strong>gevorderd</strong><br />

<br />

<br />

<br />


<strong>PHP</strong> <strong>gevorderd</strong><br />

Toepassing14: Oppervlakte met afbeeldingen maken<br />

Door input te leveren in een formulier wordt er een vlak van afbeeldingen gemaakt. De code<br />

hieronder doet dit:<br />

<br />

<br />

Oppervlak maken<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

breedte (max 50)<br />

<br />

<br />

<br />

<br />

<br />

<br />

hoogte (max 30)<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

De rest van de code staat op de volgende bladzijde:<br />

© 2011 41


<strong>PHP</strong> <strong>gevorderd</strong><br />

<br />

<br />

© 2011 42

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!