

Als je een systeem bouwt in PHP en je werkt met gebruikers of formulieren, dan moet je wat berekeningen vaak herhalen. Daar schrijven we een functie voor! Hier een aantal handige functies, bijvoorbeeld om uit te vinden of het ingevulde veld wel een e-mailadres is, hoe oud iemand is aan de hand van de geboortedatum en meer!
Pas de functies aan naar je eigen wensen. Deze functies zijn voor de beginnende PHP-er, wellicht heb je betere ontdekt of kun je het op een andere manier oplossen.
function countdown($maand, $dag, $jaar){
$remain = ceil( ( mktime( 0,0,0,$maand,$dag,$jaar)
- time() ) / 86400 );
echo $remain;
}
De code countdown(12,31,2011); geeft nu 16.
function checkMail($email){
if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) {
return false;
} else {
return true;
}
}
Deze code werkt met een regular expression in combinatie met preg_match. De code checkMail('Hallo!') geeft nu false.
function geefLeeftijd($birthday){
list($year,$month,$day) = explode("-",$birthday);
$year_diff = date("Y") - $year;
$month_diff = date("m") - $month;
$day_diff = date("d") - $day;
if ($day_diff < 0 || $month_diff < 0)
$year_diff--;
return $year_diff;
}
Met de code geefLeeftijd('1988-04-27') krijg je het getal 23 terug.
Een volledige datum staat in het formaat 0000-00-00 00:00:00. Je kunt het verschil tussen twee data uitrekenen met de functie date_diff. Geef de huidige datum in het genoemde formaat en het tijdsverschil mee in de onderstaande functie. Je krijgt bij het gebruik van deze functie een zinnetje als '3 uur en 5 minuten geleden'.
function tijdGeleden($datum, $datumverschil, $metofzondertijd = 1){
if($datum != "" && $datum != " " && $datum != "0000-00-00 00:00:00"){
$datumverschil = str_replace('-', '', $datumverschil);
$datumverschil0 = explode(":", $datumverschil);
$uren = $datumverschil0[0];
$minuten = $datumverschil0[1];
$seconden = $datumverschil0[2];
if($uren == 0 && $minuten == 0){
$datumgeleden = 'zojuist ';
} else if($uren == 0 && $minuten > 0 && $minuten < 60){
$datumgeleden = ceil($minuten);
if(ceil($minuten) == 1){
$datumgeleden .= ' minuut';
} else {
$datumgeleden .= ' minuten';
}
$datumgeleden .= ' geleden ';
} else if($uren > 0 && $uren < 24){
$datumgeleden = ceil($uren).' uur geleden ';
} else if($uren >= 24 && $uren < 48){
$datumgeleden = 'gisteren ';
} else if($uren >= 48 && $uren < 72){
$datumgeleden = 'eergisteren ';
} else if($uren >= 72 && $uren < 96){
$datumgeleden = '3 dagen geleden ';
} else if($uren >= 96 && $uren < 120){
$datumgeleden = '4 dagen geleden ';
} else if($uren >= 120 && $uren < 144){
$datumgeleden = '5 dagen geleden ';
} else if($uren >= 144 && $uren < 168){
$datumgeleden = '6 dagen geleden ';
} else if($uren >= 168 && $uren < 192){
$datumgeleden = 'een week geleden ';
} else {
$datumgeleden = $datum;
}
return $datumgeleden;
} else {
return 0;
}
};
function afbreken($str, $length, $minword = 3){
$str = strip_tags($str);
$sub = '';
$len = 0;
foreach (explode(' ', $str) as $word){
$part = (($sub != '') ? ' ' : '') . $word;
$sub .= $part;
$len += strlen($part);
if (strlen($word) > $minword && strlen($sub) >= $length){
break;
}
}
return $sub . (($len < strlen($str)) ? '..' : '');
}
Om een stuk tekst netjes af te breken en twee puntjes te tonen, gebruik je: echo afbreken('Dit is een te lange tekst', 10);.
Tags: code • functies • handig • php • scripts • techniek