1 PHP gevorderd2 Inhoudsopgave Inleiding! 4 Voorkennis voor PHP & SQL! 4 De werking van een PHP-module op een webserver! 5 String-bewerkingen! 6 PHP s...
Inleiding Deze handleiding geeft de basis van PHP-programmeren. Het bevat tekst- (strings) en datum- en tijd-bewerkingen. Er worden tevens meer loops- en array- mogelijkheden toegelicht en in voorbeelden uitgewerkt. Ook het veilig maken en houden van de gegevens doormiddel komen aan bod. De twee PHP- handleiding geven een goede basis voor het toepassen van PHP met de juiste gereedschappen om zelf meer functionaliteit aan een website toe te voegen. Het vinden van de juiste, simpele en eenduidige code voor een behoefte blijft een combi van: zelf bedenken of vinden in ander (online) handleidingen of forums. Na de twee beschikbare handleidingen en de juiste drive, zal het zeker moeten lukken :-)
Voorkennis voor PHP gevorderd Ervaring hebben met inzicht in het volgende moeten hebben: · · · ·
HTML-code (en of XHTM). Gebruik en installatie van een webservers en een databases (bijv: Apache als web-server, MySQL als database of gecombineerd in: XAMPP of MAMP) Basiskennis van PHP. Basis SQL-statements (query- syntax en database begrippen)
De werking van een PHP-module op een webserver Ter opfrissing; PHP is een module die aan de server-kant werkt. De client krijgt uiteindelijk pure HTML-code toegestuurd waarmee een page wordt weergegeven. Hoe deze page tot stand is voor de client onzichtbaar.
Hieronder staan wat gebeurt er als een php-webpagina wordt opvraagt door een client:
1. Aan de client zijde wordt een verzoek gedaan naar een (php)webpagina op een bepaalde webserver, bijvoorbeeld: www.kerssies64.net
client
7. De ontvangen code wordt ontvangen door de client. In de browser wordt deze omgezet in een leesbare pagina
2. De webserver zoekt deze pagina op in z’n filesysteem.
6. Het resultaat van de php-module wordt samengevoegd met eventueel aanwezige html-code. Deze code wordt door de webserver verstuurd naar de client
3. Omdat het een .php pagina is, stuurt de webserver deze pagina naar de php-module. Deze module moet op de webserver zijn geïnstalleerd 4. De php-module benaderd een database en voert hierop acties uit en geeft evt waarden terug
webserver
.php
5. De php-module voert het phpscript uit en geeft het resultaat terug aan de webserver
String-bewerkingen Er zijn veel bewerkingen mogelijk op teksten (strings). Enkele worden in een voorbeeld weergegeven. Daarnaast worden van veel gebruikte bewerkingen de syntax en een beschrijving gegeven.
PHP str_replace () functie De str_replace () functie vervangt sommige karakters met een andere karakters in een string. Deze functie werkt door de volgende regels: · · · ·
Als het te zoeken string een serie is, keert het een serie terug Als het te zoeken string een serie is, vind en vervang wordt gepresteerd met elk serieelement Als allebei vinden en zijn series, en vervangen hebben minder elementen dan vinden vervangen, zal een leeg string worden gebruikt zoals vervangen Als de vondst een serie is en is een string vervangt, vervang string zal voor elke vondstwaarde worden gebruikt
Let op: Deze functie is case-sensitive. gebruik str_ireplace () om een case-insensitive onderzoek uit te voeren. Nota: Deze functie is binair-veilig. Voorbeeld 1: php echo str_replace (“je”, “Jan”,“Leuk dat je verder gaat met PHP! “); ?>
De output van de code zal hierboven zijn: Leuk dat Jan verder gaat met PHP!
Voorbeeld 2: In dit voorbeeld wordt str_replace () met een array en een teller gebruikt: php $array = serie (“HP“, “DELL”, “ASUS”, “MSI”); print_r (str_replace (“HP“, “APPLE“, $array, $i)); echo „Vervangingen: $i“; ?>
De output van de code zal hierboven zijn: Array ( [0] => APPLE [1] => DELL [2] => ASUS [3] => MSI ) Vervangingen: 1
Hieronder volgt een tabel met string- beweringen met de syntax en een beschrijving. NB: Grijze tekst in de syntax is optioneel. Bewerking
Syntax en beschrijving
str_repeat()
str_repeat(string,aantal-herhalingen)
substr_count()
string een aantal maal herhalen substr_count(string,substring,start-pos,lengte)
str_ireplace()
tel het aantal maal dat een string in een andere string voorkomt. str_ireplace(vind,vervang,string,aantal vervangingen) vervangt een karakter in een string
strstr()
strstr(string,zoek)
stristr()
geeft de rest van de string na de gezochte string weer stristr(string,zoek)
str_split()
geeft het gezochte word en de rest van de string weer. str_split(string,aantal-karakters)
str_word_count()
plaatst gropejes karakters van een string in een array str_word_count(string,return,char) return:
explode() join() implode()
strncmp()
0 - Standaard. Aantal woorden dat gevonden is 1 – Geeft een array met de woorden uit de string 2 – Geeft een array waarbij de key [x] een waarde bevat van de karakter-positie in de string explode(scheidings-karakterer,string,max aantal array-keys) Breekt een string op in een array join(scheidingsteken,array) implode(scheidingsteken,array) Combineert array warden tot een string. Standard scheidingsteken is een ‘spatie’ strcasecmp(string1,string2)
vergelijk twee strings en geeft het aantal afwijkende karakters
Naast string functies zijn er uiteraard ook functies nodig om datum en tijd gegevens op te vragen en bewerken. Uiteraard zullen ook met data en tijdstippen berekeningen gemaakt worden. Timestamp Timestamp is het aantal seconden dat sinds 1 Januari, 1970 bij 00:00: 00 GMT gepasseerd zijn. Dit wordt ook wel de Unix-timestamp genoemd.
PHP datum() De datum () functie specificeert welk format data en/of tijd krijgen. Het gebruikt karakters om datum en tijdformaten aan te geven. datum (formaat, optie-timestamp)
formaten voor datum en tijd zijn hieronder met een letter weergegeven: · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
D D j l N S w z W F m M n t L o Y y a A B g G h H i s e
-
de dag van de maand (van 01 tot 31) een tekstuele vertegenwoordiging van een dag (drie brieven) de dag van de maand zonder belangrijke nul (1 tot 31) („L in kleine letters“) - een volledige tekstuele vertegenwoordiging van een dag - Numerieke vertegenwoordiging ISO-8601 van een dag (1 voor Maandag door 7 voor Zondag) - het Engelse rangschikkende achtervoegsel voor de dag van de maand (2 karakters st, Nd, rd of Th. De werken goed met j) - een numerieke vertegenwoordiging van de dag (0 voor Zondag door 6 voor Zaterdag) - de dag van het jaar (van 0 door 365) - het ISO-8601 weekaantal jaar (weken die op Maandag beginnen) - een volledige tekstuele vertegenwoordiging van een maand (Januari door December) - een numerieke vertegenwoordiging van een maand (van 01 tot 12) - een korte tekstuele vertegenwoordiging van een maand (drie brieven) - een numerieke vertegenwoordiging van een maand, zonder belangrijke nul (1 tot 12) - het aantal dagen in de bepaalde maand - of het een schrikkeljaar is (1 als het een schrikkeljaar is, 0 anders) - het ISO-8601 jaaraantal - een vier cijfervertegenwoordiging van een jaar - een vertegenwoordiging met twee cijfers van een jaar - am of p.m. In kleine letters - AM of PM In hoofdletters - de tijd van Internet van het Monster (000 tot 999) - 12 uurformaat van een uur (1 tot 12) - het formaat van 24 uur van een uur (0 tot 23) - 12 uurformaat van een uur (01 tot 12) - het formaat van 24 uur van een uur (00 tot 23) - minuten met een nul (00 tot 59) - seconden, met een nul (00 tot 59) - het timezone herkenningsteken (Voorbeelden: UTC, Atlantische Oceaan/de Azoren)
(hoofdletter i) - of de datum in de tijd is van zomertijd (1 als Zomertijd, 0 anders) - Verschil aan de tijd van Greenwich (GMT) in uren (Voorbeeld: +0100) - het plaatsen Timezone van de PHP machine (Voorbeelden: EST, MDT) - Timezone die in seconden wordt gecompenseerd. De compensatie ten westen van UTC is negatief, en het compensatieoosten van UTC is positief (- 43200 tot 43200) - ISO-8601 dateren (b.v. 2004-02-12T15: 19: 21+00: 00) - de geformatteerde datum RFC 2822 (b.v. Thu, 21 het 16:01 van Dec 2000: 07 +0200) - de seconden dat het Tijdvak van Unix (1 Januari het 00:00 van 1970: 00 GMT)
O T Z c r U
Datum en tijd mogelijkheden: "); echo(date("l") . " "); echo(date("l dS \of F Y h:i:s A") . " "); echo("Okt 3,2008 was een ".date("l", mktime(0,0,0,10,3,2008))." "); echo(date(DATE_RFC822) . " "); echo(date(DATE_ATOM,mktime(0,0,0,10,3,2008)) . "
"); echo("Resultaat van gmdate(): "); echo(gmdate("l") . " "); echo(gmdate("l dS \of F Y h:i:s A") . " "); echo("Okt 3,2008 een ".gmdate("l", mktime(0,0,0,10,3,2008)). " "); echo(gmdate(DATE_RFC822) . " "); echo(gmdate(DATE_ATOM,mktime(0,0,0,10,3,2008)) . " "); ?> De uitkomst toen. (een mogelijke resultaat): Resultaten met date(): Tuesday Tuesday 24th of January 2006 02:41:22 PM Okt 3,2008 was een Friday Tue, 24 Jan 2006 14:41:22 CET 2008-10-03T00:00:00+0100 Resultaat van gmdate(): Tuesday Tuesday 24th of January 2006 01:41:22 PM Okt 3,2008 was een Thursday Tue, 24 Jan 2006 13:41:22 GMT 2008-10-02T23:00:00+0000
- het Monster slaat/de Tijd van Internet -dag van de maand - Uur (12 uurformaat) - Uur (24 uurformaat) - Notulen - winst 1 als DST (zomertijd), 0 anders wordt geactiveerd - winst 1 voor schrikkeljaar, 0 anders - het aantal van de Maand - Seconden - Dagen in huidige maand - Seconden sinds het Tijdvak van Unix (1 Januari het 00:00 van 1970: 00 GMT) - Dag van de week (Sunday=0) - ISO-8601 weekaantal jaar (weekbegin op Maandag) - Jaar (1 of 2 cijfers) - Jaar (4 cijfers) - Dag van het jaar - Timezone die in seconden wordt gecompenseerd
w W y Y z Z
Script met het plaatsen van de huidige tijd in een variabele, waarna het in een echo wordt weergegeven: "); echo(date("D F d Y",$t)); ?>
Het resultaat is: 1138618081 Mon January 30 2006
Meer datum bewerkingen staan in het hoofdstuk ‘Toepassingen’.
Hieronder volgt een tabel met string-beweringen met de syntax en een beschrijving. NB: Grijze tekst in de syntax is optioneel. Bewerking
Syntax en beschrijving
checkdate()
checkdate(maand,dag,jaar)
controleert de datum op mbt juiste waarden, geeft: true of false date_default_timezone_get date_default_timezone_get(void) () geeft de tijdszone terug in tekst date_default_timezone_set date_default_timezone_set(timezone) () verander de tijdszone. Bijv: "Europe/Paris" date() date(format,timestamp) zet de huidige datum en/of tijd getdate()
getdate(timestamp) Plaatst systeem datum en tijd gegevens in een array met benoemde elementen
gettimeofday()
[seconds] - seconden [minutes] - minuten [hours] - uren [mday] – dag van de maand [wday] - dag van de week [year] - jaar [yday] – dag van het jaar [weekday] – weekdag, zoals: monday (maandag) [month] - naam van de maand gettimeofday(return_float) geeft een array met huidige tijdsindicaties [sec] - seconden since de Unix tijdvak [usec] - microseconden [minuteswest] - minuten west van Greenwich [dsttime] - type voor dst correction idate(format,timestamp)
idate()
mktime()
Zet een locale tijd al seen integer mktime (uur,minuut,seconde,maand,dag,jaar,daylightSavingTi me) berekend de juiste datum en tijd bij foutieve invoer. date("M-d-Y",mktime(0,0,0,14,1,2001))
PHP gevorderd Bewerking Syntax en beschrijving strftime()
strftime(format,timestamp)
time()
Zet de locale tijd in een eigen format %a - afgekorte weekdag naam %A - volledige weekdag naam %b - afgekorte maand naam %B - volledige maand naam %c - aangewezen datum en tijdvertegenwoordiging %C - eeuwaantal (het jaar dat door 100 wordt verdeeld, van 00 tot 99) %d -dag van de maand (01 tot 31) %D - zelfde zoals %m/%d/%y %e - dag van de maand (1 tot 31) %g - als %G, maar zonder de eeuw %G - jaar dat met 4 digits aan het de weekaantal beantwoordt van ISO (zie %V). %h - zelfde zoals %b %H - uur, dat een 24 uur klok gebruikt (00 tot 23) %I - uur, dat een 12 uur klok gebruikt (01 tot 12) %j - dag van het jaar (001 tot 366) %m - maand (01 tot 12) %M - minuut %n - newline karakter %p - am of pm. volgens de huidige tijd %r - tijd met am- of pm-aantekening %R - tijd in 24 uur notering %S - seconde %t – het tab karakter %T - huidige tijd, gelijk aan %H: %M: %S %u - weekdag als aantal (1 tot 7), Monday=1. Het waarschuwing: In Sun Solaris Sunday=1 %U - weekaantal van het huidige jaar, om te beginnen met de eerste Zondag als eerste dag van de eerste week %V - ISO 8601 weeknummer van het huidige jaar (01 tot 53), waarbij week 1 de eerste week is die minstens 4 dagen in het huidige jaar is, en met maandag als eerste dag van de week heeft %W - weeknummer van het huidige jaar, dat begint met een maandag als eerste dag van de eerste week %w - dag van de week als decimaal, Sunday=0 %x - aangewezen datumvertegenwoordiging zonder de tijd %X - aangewezen tijdvertegenwoordiging zonder de datum %y - jaar zonder een eeuw (van 00 tot 99) %Y - jaar met inbegrip van de eeuw %Z of %z - tijdzone of naam of afkorting %% - letterlijk het %-karakter time(void) Geeft de huidige datum en tijd terug
strptime(date,format) Geeft een array terug met delen van datum en tijd [tm_sec] - seconden (0-61) [tm_min] - minuten (0-59) [tm_hour] - uur (0-23) [tm_mday] - dag van de maand (1-31) [tm_mon] - maanden sinds Januari (0-11) [tm_year] - jaren sinds 1900 [tm_wday] - dagen sinds Zondag (0-6) [tm_yday] - dagen sinds 1 Januari (0-365) [unparsed] - het datumdeel dat niet werd herkend
Voor meer bewerkingen wordt verwezen naar andere (online) handleidingen. Voorbeelden: Check op tijd, waarna er een begroeting volgt: $d=date("H"); if ($d > "12") echo "goedemiddag!" ; else echo "goedemorgen!"; ?>
Datum-functies uit een array: $d=getdate(); if ($d[hours] > "12" && $d[hours] <"18")
{
echo "goedemiddag!" ;
} elseif ($d[hours] >"18" && $d[hours] <"22")
{
echo "goedeavond!";
} elseif ($d[hours] > "22" && $d[hours] <"6")
{
echo "goedenacht!";
} else
{
echo "goedemorgen!";
} echo '
'.$d[mday].'-'.$d[mday].'-'.$d[year]; //geef datum in eigen format ?>
Meer array mogelijkheden De arrays (series) zijn meerdere waarden in één variabele, die ook bewerkt kunnen worden met functies. PHP ondersteunt zowel eenvoudige als multi - dimensionele arrays. Veel speciale arrays die veel gebruikt worden zijn $_GET en $_POST. Voor eigen arrays volgen hieronder een lijst met array-functies: Bewerking
Syntax en beschrijving
array()
array(sleutel => waarde) Maakt een array aan
array_chunk()
array_combine()
array_count_values()
array_diff()
$a=array("a"=>"Rood","b"=>"Wit","c"=>"Blauw"); $a=array("Rood","Wit","Blauw"); array_chunk(array,grootte,behoud_key) Splits teen array op in blokken print_r(array_chunk($array,2)); print_r(array_chunk($array,2,true)); array_combine(array1,array2) Voegt twee arrays samen print_r(array_combine($array1,$array2)); array_count_values(array) Telt hoe vaak warden voorkomen print_r(array_count_values($array)); array_diff(array1,array2,array3...) Vergelijt arrays tov de eerste en geeft welek niet voorkomen print_r(array_diff($array1,$aarray2,array3));
array_diff_assoc()
array_diff_assoc(array1,array2,array3...) Vergelijkt arrays tov elkaar print_r(array_diff_assoc($array1,$array2,…));
array_diff_ukey(array1,array2,array3..., functie) Vergelijkt array keys tov de eerste array array_fill(start,aantal,waarde) Vult een aantal elementen van array met warden $a=array_fill(2,3,"Oranje"); array_filter(array,functie) Filtert waarden uit een array op basis van eeen eigen functie
16
PHP gevorderd Bewerking
Syntax en beschrijving
array_flip()
array_flip(array) Verwisselt de elementwaarden en de sleutels in een array array_intersect(array1,array2,array3...) Vergelijkt arraywaarden tov van de eerste array en geeft de waarden en de sleutel
array_intersect()
Variaties: _assoc, _key, _uassoc en _ukey array_key_exist() array_key_exists(sleutel,array) Controleert of een sleutel in een array bestaat array_keys() array_keys(array,value) Geeft een array met de sleutels van een gegeven array array_map() array_map(function,array1,array2,...) Stuurt elke waarde in array(s) naar een eigen functie array_merge() array_merge(array1,array2,array3...) Voegt arrays samen met nieuwe sleutels array_merge_recursiv array_merge_recursive(array1,array2,array3...) e() Voegt arrays samen, bij dubbele sleutel komt er en nieuwe sub-array die de dubbele waarden bevat
array_pad(array,aantal_elementen,start_element) neemt een gespecificeerd aantal elementen, met een gespecificeerde waarde, in een array op. print_r (array_pad ($array, 5.0));
array_pop(array) Verwijdert het laatste element van een array
array_product()
array_product(array) Berekent het product van de waarden (cijfers) in een array
array_push()
array_push(array,waarde1,waarde2...) Plaatst één of meerdere elementen aan het eind van een array
array_rand()
array_rand(array,aantal) Geeft één of meerdere willekeurige sleutels van een array terug
array_reduce()
array_reduce(array,functie,initieel) Geeft een array-waarde terug in een string, doormiddel van een gebruiker- gedefinieerde functie
array_reverse()
array_reverse(array,bewaar_sleutel) Geeft een array in de omgekeerde orde terug. Bewaar_sleutel: true / false
array_search()
array_search(waarde,array,strict) Zoekt in een array naar een bepaalde waarde en geeft de sleutel terug. Strict: true / false (standaard) voor cijfers.
array_shift()
array_shift(array) Verwijdert het eerste element uit een array, en geeft de waarde van het verwijderde element terug
array_slice()
array_slice(array,start_sleutel,lengte,bewaar) Selecteerd geselecteerde delen uit een array Bewaar: true / false (standaard) – om de sleutel te behouden
array_splice()
array_splice(array,start,lengte,arraynieuw) Verwijdert gespecificeerde elementen van een array en vervangt ze met waarden uit een ander array
array_sum()
array_splice($a1,0,3,$a2); array_sum(array) Geeft de som in een array- waarden (cijfers) terug
array_udiff()
array_udiff(array1,array2,array3..,functie) Vergelijkt array- waarden in een gebruiker-gemaakte functie en geeft een array terug
array_udiff_assoc() array_udiff_uassoc()
array_udiff_assoc(array1,array2,array3..., functie) Vergelijkt seriesleutels, en vergelijkt array- waarden in een gebruiker-gemaakte functie, en geeft een array terug
Vergelijkt seriewaarden in een gebruiker-gemaakte functie (geeft een cijfer terug) en geeft een array terug met de verschillen Verwijdert dubbele waarden uit een array
array_unshift(array,waarde1,waarde2,waarde3...) Voegt één of meerdere elementen aan het begin van een array toe en vervangt de elementnummers
array_values()
array_values(array) Geeft alle waarden uit een array terug in een nieuwe array
array_walk()
array_walk(array,function,parameter...) Past een gebruikersfunctie op elke waarde van een array toe Parameter om een eigen waarde mee te nemen.
function zien($waarde,$sleutel,$p) { echo "$sleutel $p $value ";} $a=array("a"=>"H","b"=>"Q","c"=>"1"); array_walk($a,"zien","met de waarde"); array_walk_recursive array_walk_recursive(array,functie, () parameter) Past een gebruikersfunctie op elk onderdeel van een array toe voor de sleutels en hun waarden. Ook diepere arrays zijn met deze functie mogelijk (array in een array) arsort()
arsort(array, sorteertype) Sorteert een array- waarden in omgekeerde volgorde en behoudt de indexvolgorde. Sorteert een serie in omgekeerde orde · SORT_REGULAR - Standaard. · SORT_NUMERIC · SORT_STRING SORT_LOCALE_STRING waarden in locale settings.
asort()
asort(array, sorteertype) Sorteert een array en behoudt de indexvolgorde
compact()
compact(var1,var2...) Maakt een array die variabelen en hun waarden.
Telt het aantal elementen in een array, of eigenschappen in een object · 0 - Default. Ziet geen multidimensional arrays (arrays in arrays) · 1 – Ziet wel multidimensional arrays Geeft het huidige element in een array terug
current() pos () each()
Geeft het huidige sleutel en waardepaar van een serie terug
end()
Plaatst de interne wijzer van een serie aan zijn laatste element De variabelen van de invoer in de huidige symboollijst van een serie
Controleert als een gespecificeerde waarde in een serie bestaat Haalt een sleutel van een serie.
krsort()
krsort(array,sorteertype) Sorteert een array op de sleutel in omgekeerde volgorde.
ksort()
ksort(array, sorteertype) Sorteert een serie op de sleutel.
list()
list(var1,var2...) Wijst variabelen uit een array toe aan een lijst.
natcasesort()
list($a, $b, $c) = $mijn_array; natcasesort(array) Sorteert een array met het “natuurlijke algoritme” en behoud de sleutels-waarden. Hoofdlettergevoelig
natsort()
natsort(array) Sorteert een array met het “natuurlijke algoritme” en behoud de sleutels-waarden.
next()
next(array) Verplaatst de interne arraywijzer naar de volgende positie.
range(low,high,step) Maakt een array die specifieke elementen bevat.
$waarden = range(0,5); reset(array)
reset()
Plaatst de interne wijzer van een array naar het eerste element. rsort ()
rsort(array, sorteertype) Sorteert een serie in omgekeerde orde · SORT_REGULAR - Standaard. · SORT_NUMERIC · SORT_STRING · SORT_LOCALE_STRING waarden in locale settings.
shuffle()
shuffle(array) Schuifelt een array in een willekeurige volgorde.
sort()
sort(array, sorteertype) Sorteert een array.
uasort()
uasort(array, sorteertype) Sorteert array- waarden met een gebruiker- gedefinieerde functie en behoudt indexvereniging.
uksort()
uksort(array, sorteertype) Sorteert array sleutels met een gebruiker- gedefinieerde functie en behoudt indexvereniging.
usort()
usort(array, sorteertype) Sorteert array sleutels met een gebruiker- gedefinieerde functie en behoudt indexvereniging.
Voor meer bewerkingen wordt verwezen naar andere (online) handleidingen.
Server Side Inclusions (SSI) SSI wordt gebruikt om functies, headers, footers en elementen te maken die in meerdere pages wordt hergebruikt. Het is mogelijk om de inhoud van een bestand te importeren in PHP, voordat de rest van het PHPscript wordt uitgevoerd. Dit kan veel tijd en wijzigingsgemak geven.
De include() functie In de onderstaande HTML- code wordt een PHP- bestand ingevoegd:
Het is mogelijk om het menu ook in andere web- of php- pages op te vragen.
De require() functie De require functie is gelijk aam de include functie, maar gaat anders om met fouten. Include geeft een waarschuwing, terwijl de require een fatal-error geeft. Het script stopt direct...
Beide geven een melding, maar de require functie zal de echo niet meer uitvoeren, terwijl de include functie dit wel zal doen
PHP_self als formulier-actie In de volgende code wordt getoont hoe een html-formulier niet een specifiek bestand aanroept om via POST of GET zijn waarden aan af te geven maar met $PHP_SELF Persoonlijke INFO
PHP gevorderd } else { echo "Hallo, ".$Fname." ".$Lname.". "; echo "Je bent een ".$gender.", en houdt van "; foreach ($food as $f)
{
echo $f." ";
} echo " ".$quote." "; echo "Je favoriete tijd is de: ".$TofD.", en hebt een ".$education."-opleiding gevolgd "; } ?>
PHP headers versturen
Een php-header maakt het mogelijk om een website, eigen web-page of document aan te roepen in plaats van META te gebruiken. Door gebruik te maken van de functie header() kunnen sessies worden behouden. !!! De functie header() kan alleen worden aangeroepen voordat de browser gegevens op het scherm heeft gezet. Dus, voor de html-tag of een php-echo of -print actie. header('Location: http://www.voorbeeld.com/'); of header('Location: map/bestand.php’);
Acties pas na een klik uitvoeren In heel veel gevallen moet er pas iets worden weergegeven in een web-page wanneer er op een submit-knop is geklikt, waarna andere weergaves juist verdwijnen. Dit kan je met de volgende code doen waarin de functie isset() is gebruikt:
?>
if (isset($_POST[submitknop])) { echo “de knop is geklikt”; } if ( ! isset($_POST[submitknop])) { echo “de knop is NIET geklikt”; }
Folder functies De folderfuncties staat toe om informatie over folders en hun inhoud op te vragen. Dit kan omdat PHP op de server werkt. Er is geen installatie nodig om deze functies te gebruiken. JavaScript kan geen gegevens opvragen van de server, omdat dat script aan de client-kant wordt uitgevoerd. Functie
Beschrijving
chdir ()
chdir(andere_map) Verandert de huidige folder chdir("afbeelding"); chroot (map) Verandert de root-folder van het huidige proces dir(map) Opent een folder en keert een object terug $dir = dir("afbeelding"); opendir(map,context) Opent een folder behandeling opendir($map); closedir(map_stroom) Sluit een folder behandeling closedir($map); getcwd() Keert de huidige folder terug echo getcwd();
chroot () dir ()
opendir ()
closedir ()
getcwd ()
Functie
Beschrijving
readdir ()
readdir(map_stroom) Keert een ingang van een folder behandeling terug while (($bestand = readdir($map)) !== false) rewinddir(map_stroom) Stelt een folder behandeling terug (reset) rewinddir($map); scandir(dmap,sortering,context) Geeft een lijst met de bestanden en folders in een folder print_r(scandir("afbeelding"));
Door een if toe te voegen in de while-loop kunnen de punt en dubbele-punt worden verwijdert.
Meerder bestanden uit een map includen Wanneer er meerder bestanden geinclude moeten worden, is het omslachtig om elk bestand apart aan te roepen. Het is eenvoudiger om een specifieke map aan te roepen en alle bestanden daarin include. Dit kan als volgt:
{
Toepassing1: Berekening met korting (if else) De code berekent een te betalen bedrag met of zonder korting. De php- page met de naam index.php in de publicatie folder van de webserver en bevat de volgende code:
Toepassing2a: Percentage berekening (for-loop) De code vraagt om een jaarlijkse inleg, looptijd en een rente percentage. Uitkomst is een geldbedrag dat na het einde van de looptijd uitgekeerd moet worden. De html- page (index.html) in de publicatie folder van de webserver bevat de volgende code:
Rente berekening
Voer aantal jaar in: Voer rente in: Voer jaarlijkse inleg in:
De php-page (rente.php) in de publicatie folder van de webserver bevat de volgende code: Rente berekening Rente berekenen
{
$rentebedrag=$inleg*$rente/100;
$bedrag=$rentebedrag+$bedrag+$inleg;
} echo 'Het totale sindbedrag na '.$duur.' is euro: '.$bedrag; ?>
Toepassing2b: Percentage berekening (while loop) De zelfde berekening, maar nu wordt er in plaats van een for-loop een while-loop gebruikt in de Het formulier kan er zo uitzien:
Rente berekening
php-code: Rente berekening Rente berekenen
{
$rentebedrag=$inleg*$rente/100;
$bedrag=$rentebedrag+$bedrag+$inleg;
$jaar++;
} echo 'Het totale sindbedrag na '.$duur.' is euro: '.$bedrag; ?>
Toepassing3: Een groet op basis van het huidige tijd De volgende php-page (index tijd.php) bepaald op basis van de huidige tijd welke groet gegeven moet worden. In de publicatie folder van de werbserver bevat het bestand de volgende code: $d=date("H"); if ($d > "12")
echo "goedemiddag!" ; else
echo "goedemorgen!"; ?>
Toepassing4: Arrays en tijd en datum gebruik De volgende php-page bepaald op basis van de huidige tijd welke groet gegeven moet worden. In de publicatie folder van de werbserver bevat het bestand de volgende code: $d=getdate(); if ($d[hours] > "12" && $d[hours] <"18")
{
echo "goedemiddag!" ;
} elseif ($d[hours] >"18" && $d[hours] <"22")
{
echo "goedeavond!";
} elseif ($d[hours] > "22" && $d[hours] <"6")
{
echo "goedenacht!";
} else
{
echo "goedemorgen!";
} echo '
'.$d[mday].'-'.$d[mday].'-'.$d[year]; //geef datum in eigen format ?>
return false; } // _________________________________________________________ //Een array wordt gevult met waarden $my_array = array("Blauw","Paars","Groen","Rood","Zwart","Rood"); //geeft de inhoud van de array echo 'De array en zijn inhoud: . '; print_r($mijn_Array); echo'
'; // sorteert de array en behoud de index-benaming (sort() haalt het. asort($mijn_Array); // laat alle waarden in de array zien (gesorteerd, door vorige functie) echo 'De waarden uit het array gesorteerd weergegeven: '; foreach ($mijn_Array as $waarde)
{
echo "Waarde array element: " . $waarde .' ';
} echo '
'; // Hoe vaak komt een gezochte waarde voor echo 'Het resultaat,; het elementnummer van de zoekactie: . '; echo array_search($zoek,$mijn_Array); echo '
';
// functie wordt gebruikt in filter actie -- De elementwaarden van de array worden getoond echo 'Alle array-elementen die uit de zoekactie: $zoek , zijn gefilterd uit de array: '; print_r(array_filter($mijn_Array,"myfunction")); echo '
'; // list-waarden uit een array naar variabelen schrijven en deze oproepen echo 'Enkele array-elementen die in een lijst zijn geplaatst: '; list($a, $b, $c) = $mijn_Array; echo "Enkele kleuren; $a, $b en $c."; ?>
Toepassing6: Alfabetisch sorteren met arrays (for en if) De code vraagt om een extra naam, welke in een array wordt toegevoegd. Alle elementen van de array worden gesorteerd van A-Z, daarna a-z en tot slotte 0-9. De html-page (index.html) in de publicatie folder van de werbserver bevat de volgende code: Sorteren op alfabet
Toepassing7: Alfabetisch sorteren met arrays met functies De php-page (alfabet-functie.php) zal de waarden in een array sorteren en weergeven. Het phpbestand bevat de volgende code:
Toepassing8: Verschillende datum bewerkingen De volgende code bevat een verzameling van verschillende datum bewerkingen. Zo wordt het datum-format van internationaal naar Europees en weer terug getoond op verschillende manieren. Ook wordt getoond hoe een formulier een datum kan weergeven met dropdown-input velden.
datum conversies
datum tijd waarden ophalen
'; $datum_tijd=getdate(date("U")); echo 'dag in tekst: '.$datum_tijd[weekday].', maand in tekst: '.$datum_tijd[month] .', dag vd maand: '.$datum_tijd[mday].', dag in het jaar: '.$datum_tijd[yday] .' en nog meer opties...'; echo ''; ?> omzetten EU <> US "string"'; $US = "2011/03/14"; echo 'datum-format zoals SQL gebruikt: '.$US.' '; echo ' '; $EU = substr($US,8,2).'-'.substr($US,5,2).'-'.substr($US,0,4);//maand,dag,jaar echo 'SQL-format omgezet naar EU-format: '.$EU.''; echo ' '; $US = substr($EU,6,4).'/'.substr($EU,3,2).'/'.substr($EU,0,2); echo 'en weer terug naar US-format: '.$US.''; $omzetten = explode("/",$US); echo 'met explode: '. $omzetten[2].'-'.$omzetten[1].'-'.$omzetten[0].''; ?> conversie met "str 2 time"'; $date = date("Y/m/d"); echo $date.' voor omzetten en daarna omgezet met strtotime: '; $date = strtotime($date); $date = date("d-m-Y", $date); echo $date.' '; ?> omzetten EU <> US met reguliere expressies'; echo 'US->EU '.preg_replace("/(\d+)-(\d+)-(\d+)/", "$2-$3-$1", date("Y-m-d")).' '; echo 'EU->US '.preg_replace("/(\d+)-(\d+)-(\d+)/", "$3/$2/$1", date("Y-m-d")); ?>
Toepassing9: Score berekenen Hieronder is een simpele bewerking gegeven om met gebruikers input een berekening uit te voeren. De invoer gebeurt met HTML-formulieren, de berekening wirdt door de PHP-module uitgevoer en in HTML-code gezet en naar de webserver teruggestuurd, zodat een cliënt-browser pure HTML krijgt:
Toepassing10: Gemiddelden berekenen uit een array In de volgende code worden waarden uit een array met een while loop bij elkaar opgeteld, waarna het gemiddelde wordt berekend.
= = = = = = =
10.1; 12.9; 9.5; 8.34; 11.2; 13.2; 13.0;
print 'Temperatuur 3e dag is '; print $temp[2]; print '
'; for ($teller=0; $teller <=6; $teller++)
{
echo 'Temperatuur dag ',$teller+1,' is ',$temp[$teller],' ';
Toepassing11: Licentie controle In de code hieronder (licentie.php) wordt een sleutels gegenereerd op basis van een naam. Nu wordt de sleutel direct op het scherm die ingevoerd moet worden. Normaal zal de eindgebruiker deze de gebruikersnaam en de licentie -sleutel via een ander weg ontvangen en in moeten voeren Licentie
Toepassing12: Vul een iframe dmv een PHP-actie In het index.php bestand hieronder wordt op basis van een php waarde een iframe gevuld met een externe webpage. Dit kan uiteraard ook een webpage op de server zelf zijn. Met deze techniek is het mogelijk om vanuit PHP in één of meerdere iframes nieuwe of andere content weer te geven. <iframe src= "" scrolling="auto" width=100% height=90% frameborder="0">
Toepassing13: Header- mogelijkheden en keuze tussen CSSbestanden Het eerste stukje header wat hieronder is weergegeven hoe in de adresbalk het icoontje vervangen kan worden door een eigen icoon. Daarna staan er twee regels die zoekgegevens bevat voor zoekmachines, zodat uw site beter te vinden is. Uiteraard kan de inhoud van de ‘metawaarden’ ook vanuit een database worden gehaald. Het tweede stukje code vraagt de browserinformatie op van de bezoeker. Uit deze informatie zoeken we het stukje tekst: ‘MSIE’. Op basis hiervan bepalen we welk CSS-bestand geladen moet worden. Dit is nodig om dat de verschillende browsers niet op de zelfde manier omgaan met CSSinformatie. Mozilla en Apple houden zich aan de internationale standaarden. Microsoft moet natuurlijk afwijken... <META NAME="description" LANG="nl" CONTENT=""> <META NAME="keywords" LANG="nl" CONTENT="'"> <STYLE TYPE="text/css"> = 1)
// zoekt aantal maal dat MSIE in een string gevonden wordt { echo '';} else {echo '';} ?>
Toepassing14: Oppervlakte met afbeeldingen maken Door input te leveren in een formulier wordt er een vlak van afbeeldingen gemaakt. De code hieronder doet dit:
if ($_GET[terug] == 1) { header("Location: index.php"); }?>