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; |
ceil | Rond 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 pi | echo 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 < en
> | $s = htmlspecialchars("<h1>Piet"); |
$s = "<h1>Piet"; |
preg_replace | vervang 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 notatie | 1st 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 jaar | van 0 tot en met 365 |
date("t") | hoeveel dagen een maand bevat | van 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 pm | am |
date("A") | AM of PM | PM |
date("h") | uren in 12 uur formaat | van 1 tot 12 |
date("H") | 24 uren formaat | van 0 tot 24 |
date("i") | minuten | van 0 tot 59 |
date("s") | seconden | van 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
|