Informaticasite van het Lauwers College te Buitenpost                 © R.J. van der Beek
 

Hoofdstuk 19. PHP en MySQL

19.7. PHP overzicht

  19.7.1 Structuur

functie betekenis
<?php
........
?>
Tussen die twee regels komt het php-script
print ("............."); wat op de stippeltjes staat wordt afgedrukt
echo "............."; wat op de stippeltjes staat wordt afgedrukt
for ($teller = 1 ; $teller<=10 ; $teller++)
{ ..............; }
herhalingslus, wordt 10 keer herhaald
while (voorwaarde)
{ ..............; }
herhalingslus, wordt herhaald zolang de voorwaarde waar is
do { ......; }
while (voorwaarde);
herhalingslus, wordt herhaald zolang de voorwaarde waar is en wordt minstens één keer uitgevoerd
$a = each($b) de eerste keer dat die opdracht wordt uitgevoerd wordt $a het eerste element van de array $b, de tweede keer het tweede element, enz.
if (voorwaarde)
{ ..............; }
else
{ ..............; }
als de voorwaarde geldt dan wordt de eerste opdracht uitgevoerd en anders de tweede
if ($a==5) { .....;} als a gelijk is aan 5 dan wordt de opdracht uitgevoerd
if ($a!=5) { .....;} als a ongelijk is aan 5 dan wordt de opdracht uitgevoerd
if ($a<=5) { .....;} als a kleiner of gelijk is aan 5 dan wordt de opdracht uitgevoerd
if ($a>=5) { .....;} als a groter of gelijk is aan 5 dan wordt de opdracht uitgevoerd
if ($a>5) && ($a<20) { .....;} als a groter dan 5 is en kleiner dan 20 dan wordt de opdracht uitgevoerd
if ($a>5) and ($a<20) { .....;} als a groter dan 5 is en kleiner dan 20 dan wordt de opdracht uitgevoerd
if ($a>5) || ($a<0) { .....;} als a groter dan 5 is of kleiner dan 0 dan wordt de opdracht uitgevoerd
if ($a>5) or ($a<0) { .....;} als a groter dan 5 is of kleiner dan 0 dan wordt de opdracht uitgevoerd
error_reporting(0); er verschijnen geen foutmeldingen meer van de server
error_reporting(E_ALL); alle foutmeldingen van de server verschijnen

  19.7.2 Rekenkundige functies

functie betekenis voorbeeld resultaat
abs Absolute waarde $g = abs(-5); $g = 5;
ceilRond af naar boven $g = ceil(4.3); $g = 5;
exp Berekent een exponent van e $g = exp(1); $g = 2.7182818284590452354;
sin/cos/tan Geeft de sinus van een hoek enz
de hoek in radialen
$r = pi( )/2; $g = sin ($r); $g = 1;
asin/acos/atan Geeft de arcsinus van een hoek enz$g = asin (1); $g = 1.570796
floor Rond af naar beneden $g = floor(4.3); $g = 4;
round Rondt een getal af echo round(7.4);
echo round(7.6);
echo round(3.34683, 2);
echo round(123456, -3);
7
8
3.35
123000
pow Machtsverheffing $g = pow(2,5); $g = 32;
sqrt Worteltrekken $g = sqrt(9); $g = 3;
log Natuurlijke logaritme $g = log (M_E); $g = 1;
log10 Logaritme met grondtal 10 $g = log10 (1000); $g = 3;
rand Genereer een willekeurig waarde $g = rand (3, 10) willekeurig getal tussen 3 en 10 (inclusief)
mt_rand verbeterde versie van rand $g = mt_rand (3, 10) willekeurig getal tussen 3 en 10 (inclusief)
srand random-generator opnieuw instellen srand((double)microtime( )*1000000); er wordt aangeraden deze code te gebruiken
niet nodig vanaf PHP 4.2
bindec Binair naar decimaal $g = bindec ("11001100"); $g = 204;
decbin Decimaal naar binair $s = decbin (130); $s = "10000010";
fmod geeft de rest bij deling $g = fmod(20 , 3); $g = 2;
pi( ) of M_PI de waarde van piecho pi( ); 3.1415926535898
is_finite is waar als er een eindige waarde uit komt $b = is_finite (1/0); $b = false;
is_nan is waar als er geen waarde uit komt $b = is_nan (asin(2)); $b = true;

  19.7.3 String functies

functie betekenis voorbeeld resultaat
chop of rtrim Verwijdert achteraankomende spaties $s = rtrim("test     "); $s = "test";
ltrim Verwijdert spaties aan het begin van een string$s = rtrim("     test"); $s = "test";
trim Verwijdert spaties aan het begin en eind van een string $s = trim("     test     "); $s = "test";
chr geeft het teken met de asc-code $str = chr (65); $str = "A";
ord geeft de asc-code van het teken $g = ord("A"); $g = 65
substr geeft een substring $s = substr ("test", 2,2);
$s = substr ("test", 2);
$s = "es"
$s = "est"
strtok geeft een substring (=token) op basis van een scheidingsteken $s = strtok ("Jan Peter"," "); $s = "Jan"
stripslashes haalt backslashes weg $s = stripslashes ("\$abc\n"); $s = "$abcn");
strlen geeft de string-lengte $g = strlen("abcde"); $g = 5;
strpos geeft de positie van het eerste voorkomen van een karakter in een string

false en 0 zijn standaard in PHP hetzelfde, behalve als je === gebruikt, dus als je wilt controleren of een karakter voorkomt kan dat niet m.b.v. if ($g == false) , want dat is ook waar als $g gelijk aan 0 is, maar dan moet het m.b.v. if ($g === false)
$g = strpos ("abcdef", "d");
$g = strpos ("abcdef", "a");
$g = strpos ("abcdef", "k");
$g = 3;
$g = 0;
$g = false
strrpos Vindt de positie van het laatste voorkomen van een karakter in een string $g = strpos ("abcdbefb", "b"); $g = 8;
strtolower Zet een string om in kleine letters $s = strtolower("Dit Is Een Test"); $s = "dit is een test");
strtoupper Zet een string om in hoofdletters $s = strtolower("Dit Is Een Test"); $s = "DIT IS EEN TEST");
printf drukt een geformatteerde string af $bedrag= .8;
printf ("%01.2f",$bedrag);
0.80
minstens 1 cijfer voor de punt, 2 er achter
%0 betekent: opvullen met nullen
f betekent: float-getal
sprintf kent een geformatteerde string aan een variabele toe $bedrag= 12.82;
$b = sprintf ("%04.3f",$bedrag);
$b = 0012.820;
str_pad vult een string aan tot een bepaalde lengte $s = "test";
print str_pad($s,8,"-",STR_PAD_LEFT);
print str_pad($s, 8);

"---test"
"test    "
strip_tags stript HTML-tags en PHP-tags van een string$s = strip_tags("<h1>Piet"); $s = "Piet";
htmlspecialchars vervangt speciale HTML-tekens zoals < en > in een string door &lt; en &gt; $s = htmlspecialchars("<h1>Piet"); $s = "&lt;h1&gt;Piet";
preg_replacevervang een bepaald patroon door een ander patroon$s=preg_replace("_"," ","Jan Peter") $s="Jan_Peter"
strtr vervangt een bepaald teken door een ander $prijs="f 3.25";
$prijs=strtr($prijs,"f","€");
$prijs="€ 3.25";
nl2br() als op entertoets is gedrukt in een textarea wordt een <br> toegevoegd nl2br()

  19.7.4 Arrays

Voorbeeld betekenis
$b[3] = "Jan"; $b[4] = "Piet"; $b[5] = "Klaas"; $b wordt een array, met de drie waarden die je ziet
$b[ ] = "Jan"; $b[ ] = "Piet"; $b[ ] = "Klaas"; $b wordt een array, en wel zo dat $b[0] = "Jan"; $b[1] = "Piet"; $b[2] = "Klaas";
$b["J"] = "Jan"; $b["P"] = "Piet"; $b["K"] = "Klaas"; $b wordt een array, de sleutel is nu geen getal
$b = array ("Jan","Piet","Klaas"); zelfde resultaat als 2
$b = array (3=>"Jan",4=>"Piet",5="Klaas"); zelfde resultaat als 1
$b = array ("J"=>"Jan","P"=>"Piet","K"="Klaas"); zelfde resultaat als 3
$hoeveel=count($b); $hoeveel bevat het aantal elementen van de rij
sort($b); de waarden van de rij worden gesorteerd
rsort($b); de waarden van de rij worden in omgekeerde volgorde gesorteerd
asort($b); de waarden van de rij worden gesorteerd, en de waarden blijven bij de juiste sleutelwaarde horen
arsort($b); de waarden van de rij worden in omgekeerde volgorde gesorteerd, en de waarden blijven bij de juiste sleutelwaarde horen
ksort($b); de sleutelwaarden van de rij worden gesorteerd, en de waarden blijven bij de juiste sleutelwaarde horen
krsort($b); de sleutelwaarden van de rij worden in omgekeerde volgorde gesorteerd, en de waarden blijven bij de juiste sleutelwaarde horen
reset($b); de aanwijzer wordtteruggezet op het eerste element van de rij. Elke keer als er een lus is doorlopen moet dat gebeuren
$array3 = array_merge ($array1, $array2); de twee arrays $array1 en $array2 samengevoegd tot een nieuwe array.
$t = implode ("," , $cijfers); de waarden van de array $cijfer worden aan elkaar vastgeplakt, gescheiden door een komma, en in de variabele $t vastgelegd (dat wordt dus een string)
$b= explode ("," , $t); $b wordt een array, die bestaat uit substrings van de string $t. Daarbij wordt $t in substrings gesplitst door het scheidingstekken dat tussen de eerste aanhalingstekens staat

  19.7.5 Logische functies

functie betekenis voorbeeld resultaat
isset heeft de variabele een waarde gekregen ? if isset($waarde)
of:         if ($waarde)
true als er een waarde is toegekend aan $waarde
empty heeft de variabele geen waarde gekregen ? if empty($waarde)
of:         if (!$waarde)
true als er geen waarde is toegekend aan $waarde
ereg zit het patroon in de tekenreeks ?
hoofdlettergevoelig
ereg ("gif","foto.jpg")
ereg ("GIF","foto.gif")
false
false
mb_ereg zit het patroon in de tekenreeks ?
niet hoofdlettergevoelig
mb_ereg ("GIF","foto.gif") true
is_writeable is het toegestaan gegevens naar dit bestand te schrijven ? is_writeable($bestand) true als er in geschreven mag worden
is_file is het een bestand ? is_file($bestand) true als het een bestand (en dus geen map) is

  19.7.6 Bestands-functies

functie betekenis
$bestand=fopen("bestand.txt","r"); het bestand bestand.txt wordt geopend om te lezen
$bestand=fopen("bestand.txt","w"); het bestand bestand.txt wordt geopend om er in te schrijven
$bestand=fopen("bestand.txt","a"); het bestand bestand.txt wordt geopend om er iets aan toe te voegen
$regel=file("bestand.txt");het bestand wordt in één keer gelezen en de inhoud wordt
in de variabele (een array) $regel opgeslagen.
De eerste regel in regel[0], de tweede in regel[1], enz.
$regel = fgets ($bestand, 1024); er worden 1024 (of minder) tekens gelezen uit het bestand (maximaal één regel)
$inhoud = fread($bestand, 1024); er worden 1024 (of minder) tekens gelezen uit het bestand, $inhoud bevat die 1024 bytes
$inhoud = fread($bestand, filesize($bestand)); de hele inhoud uit het bestand wordt gelezen, $inhoud bevat alle tekens van het bestand
while (!feof($bestand) ) {...} herhaal ... zolang het einde van het bestand niet bereikt is
if ($bestand) {...} als het bestand geopend is doe dan ...
fwrite($a,"$g"); de waarde van $g wordt naar het bestand geschreven
fputs ($bestand, $g); de waarde van $g wordt naar het bestand geschreven
fclose($a); het bestand wordt afgesloten
$d=opendir("UPLOADMAP"); de map UPLOADMAP wordt geopend om de namen van de bestanden er uit te lezen en $d is de aanwijzer
$bestand=readdir($d) de naam van het eerstvolgende bestand in de map UPLOADMAP wordt gelezen, en $bestand bevat die naam
while ($bestand=readdir($d) ) { ... } er wordt net zo lang doorgegaan met het lezen van namen van bestanden tot er geen bestanden meer zijn
$n=$_POST['bestand']['name'];$n bevat de naam van het geuploade bestand
$s=$_POST['bestand']['size']; $s bevat de grootte (het aantal bytes) van het geuploade bestand
copy($_FILES['bestand']['tmp_name'],"uploadmap/".$_FILES['bestand']['name']); het geuploade bestand wordt naar de map met de naam "uploadmap" gekopieerd
move_uploaded_file($_FILES['bestand']['tmp_name'],"uploadmap/".$_FILES['bestand']['name']); het geuploade bestand wordt naar de map met de naam "uploadmap" gekopieerd
copy(bestand1, bestand2); het bestand met de naam bestand1 wordt gekopieerd, hetzelfde bestand staat nu ook in bestand2
mkdir(nieuwe_map); er wordt een nieuwe map met de naam nieuwe_map aangemaakt in de huidige map
unlink('bestandsnaam'); het bestand met de naam bestandsnaam wordt verwijderd

  19.7.7 MySQL-functies

functie betekenis
$verbinding=mysql_connect($host,$gebruiker,$wachtwoord); Er wordt een verbinding met MySQL opgezet
if (!$verbinding) die ("Er treedt een fout op"); Als er een verbindingsfout is wordt het script beëindigd en wordt er afgedrukt wat tussen de aanhalingstekens staat
$result = mysql_db_query($dbnaam,$sql,$verbinding); er wordt een sql-query, gegeven door $sql, uitgevoerd op de database met de naam $dbnaam, nadat de verbinding met MySQL tot stand is gekomen en de verbindingsgegevens zijn opgeslagen in $verbinding.
de query levert een tabel op, en die tabel wordt in een array met de naam $result gezet
$dbv = mysql_select_db($dbnaam,$verbinding); de database met de naam $dbnaam wordt geopend, nadat de verbinding met MySQL tot stand is gekomen en de verbindingsgegevens zijn opgeslagen in $verbinding.
$result = mysql_query($sql); er wordt een sql-query, gegeven door $sql, uitgevoerd op de database die daarvoor geopend is.
de query levert een tabel op, en die tabel wordt in een array met de naam $result gezet
$aantal_rijen=mysql_num_rows($result); het aantal rijen van de resultaattabel van de sql-query
$aantal_velden=mysql_num_fields($result); het aantal velden van de resultaattabel van de sql-query
$naam_veld=mysql_field_name($result,$i); de naam van de i-de kolom van de resultaattabel van de sql-query; de telling begint bij 0
$rij=mysql_fetch_row($result); Dit levert een rij op van de resultaattabel van de sql-query, en wel de rij die aan de beurt is
$rij[$i] bevat de i-de kolom van die array, die je krijgt met $rij=mysql_fetch_row($result);
de telling begint bij 0
mysql_close($verbinding); de verbinding met MySQL wordt afgesloten
$fout = mysql_errno($verbinding); $fout bevat het foutnummer van de fout die bij de vorige MySQL operatie is opgetreden; als er geen fout is opgetreden krijgt $fout de waarde 0
mysql_error($verbinding); Geeft de tekst van het foutbericht van de vorige MySQL operatie
mysql_free_result($result); Resultaat-set vrij maken
mysql_list_tables($result); Geef een lijst van tabellen in de MySQL database

  19.7.8 Datum-functies

functie betekenis resultaat
date("j") dag van de maand (niet voorafgegaan door een 0) van 1 tot 31
date("d") dag van de maand (voorafgegaan door een 0)van 01 tot 31
date(n)maand (niet voorafgegaan door een 0) van 1 tot 12
date("m") maand (voorafgegaan door een 0)van 01 tot 12
date("S")Engelse notatie1st 3rd 5th
date("y")jaar (in 2 cijfers)bijvoorbeeld 06
date("Y")jaar (in 4 cijfers)bijvoorbeeld 2006
date("D")dag van de week (verkort)bijvoorbeeld mon tue
date("L")dag van de week (lang)bijvoorbeeld monday tuesday
date("M")maand van het jaar (kort)bijvoorbeeld jan feb mar
date("F")maand van het jaar (lang)bijvoorbeeld january
date("w")dag van de week (zondag = 0)van 0 tot en met 6
date("z")dag van het jaarvan 0 tot en met 365
date("t")hoeveel dagen een maand bevatvan 28 tot en met 31

Wil je nu 30 september 2006 schrijven als 30-09-2006 dan gebruik je date("j-n-Y")
Wil je die datum schrijven als 30th of September 2006 dan gebruik je date("jS of F Y")

De tijd kun je ook opvragen m.b.v. de date-functie :

functie betekenis resultaat
date("a")am of pmam
date("A")AM of PMPM
date("h")uren in 12 uur formaat van 1 tot 12
date("H")24 uren formaatvan 0 tot 24
date("i")minutenvan 0 tot 59
date("s")secondenvan 0 tot 59

Als het 's avonds 20 voor 8 is wordt met date("H : i : s") de tijd op de volgende manier aangegeven: 19 : 40 : 00