<?php 

  
function GetSidecodeLicenseplate($Licenseplate){
        
$arrSC = array();
        
$scUitz '';
        
$Licenseplate strtoupper(str_replace('-''',$Licenseplate));
        
$arrSC[0] = '/^[a-zA-Z]{2}[\d]{2}[\d]{2}$/';         //   1       XX-99-99
        
$arrSC[1] = '/^[\d]{2}[\d]{2}[a-zA-Z]{2}$/';         //   2       99-99-XX
        
$arrSC[2] = '/^[\d]{2}[a-zA-Z]{2}[\d]{2}$/';         //   3       99-XX-99
        
$arrSC[3] = '/^[a-zA-Z]{2}[\d]{2}[a-zA-Z]{2}$/';     //   4       XX-99-XX
        
$arrSC[4] = '/^[a-zA-Z]{2}[a-zA-Z]{2}[\d]{2}$/';     //   5       XX-XX-99
        
$arrSC[5] = '/^[\d]{2}[a-zA-Z]{2}[a-zA-Z]{2}$/';     //   6       99-XX-XX
        
$arrSC[6] = '/^[\d]{2}[a-zA-Z]{3}[\d]{1}$/';         //   7       99-XXX-9
        
$arrSC[7] = '/^[\d]{1}[a-zA-Z]{3}[\d]{2}$/';         //   8       9-XXX-99
        
$arrSC[8] = '/^[a-zA-Z]{2}[\d]{3}[a-zA-Z]{1}$/';     //   9       XX-999-X
        
$arrSC[9] = '/^[a-zA-Z]{1}[\d]{3}[a-zA-Z]{2}$/';     //   10      X-999-XX
        
$arrSC[10] = '/^[a-zA-Z]{3}[\d]{2}[a-zA-Z]{1}$/';     //   11      XXX-99-X
        
$arrSC[11] = '/^[a-zA-Z]{1}[\d]{2}[a-zA-Z]{3}$/';     //   12      X-99-XXX
        
$arrSC[12] = '/^[\d]{1}[a-zA-Z]{2}[\d]{3}$/';           //   13      9-XX-999
        
$arrSC[13] = '/^[\d]{3}[a-zA-Z]{2}[\d]{1}$/';         //   14      999-XX-9                

        //except licenseplates for diplomats
        
$scUitz '/^CD[ABFJNST][0-9]{1,3}$/';              //for example: CDB1 of CDJ45
        
for($i=0;$i<count($arrSC);$i++){
            if (
preg_match($arrSC[$i],$Licenseplate)) {
                return 
$i+1;
            }
        }
        if (
preg_match($scUitz,$Licenseplate)) {
            return 
'CD';
        }
        return 
false;
    }

    function 
FormatLicenseplate($Licenseplate,$Sidecode) {
        
$Licenseplate strtoupper(str_replace('-''',$Licenseplate));
        if (
$Sidecode <= && $Sidecode 0) {
            return 
substr($Licenseplate,0,2) . '-' substr($Licenseplate,2,2) . '-' substr($Licenseplate,4,2);
        }
        if (
$Sidecode == || $Sidecode == 9) {
            return 
substr($Licenseplate,0,2) . '-' substr($Licenseplate,2,3) . '-' substr($Licenseplate,5,1);
        }
        if (
$Sidecode == || $Sidecode == 10) {
            return 
substr($Licenseplate,0,1) . '-' substr($Licenseplate,1,3) . '-' substr($Licenseplate,4,2);
        }
        if (
$Sidecode == 11 || $Sidecode == 14) {
            return 
substr($Licenseplate,0,3) . '-' substr($Licenseplate,3,2) . '-' substr($Licenseplate,5,1);
        }
        if (
$Sidecode == 12 || $Sidecode == 13) {
            return 
substr($Licenseplate,0,1) . '-' substr($Licenseplate,1,2) . '-' substr($Licenseplate,3,3);
        }        
        
        return 
$Licenseplate;
    }

  if (isset(
$_GET['source'])) {
    
highlight_file('kenteken-source.php');
    exit();
  }

  if (!isset(
$_GET['text'])) {
?>
<!DOCTYPE html>
<html lang="nl">
  <head>
</head>

<body>
stripped version
   <form id="contactform" class="form-signin">
<div class="field">
    <label for="text">Kenteken:</label>
      <input type='text' class="inputkenteken" name='text' id='text' placeholder='Vul kenteken in' maxlength="8" value='' />
    <p class="hint">Vul kenteken in, met of zonder streepjes</p>
</div>    
<div class="field">
    <label for="duplcode">Duplicaatcode (optioneel):</label>
      <input type='text' class="input" name='duplcode' id='duplcode' maxlength="1" value=''/>
    <p class="hint">Duplicaatcode</p>
</div>    

    <input type=submit class="btn btn-primary btn-large" value='Maak kentekenplaat'>
    </form>
    <br />
  </body>
</html>
<?php
    
exit();
  }
 
  
$find    = array('!','@','#','$','%','^','&','*','(',')',"_"," ");
  
$replace = array('1','2','3','4','5','6','7','8','9','0','-',".");

  
$text strtoupper($_GET['text']);
  
$text str_replace($find,$replace,$text);
  
$sidecode GetSidecodeLicenseplate($text);
  
$text FormatLicenseplate($text,$sidecode);
  
$duplicaatcode strtoupper($_GET['duplcode']);
  
$tag strtoupper($_GET['tag']);
  
$fixedwidth strtoupper($_GET['fixedwidth']);
  
  if (
$tag <> "") {
    
$cachename "cache/" .$tag "_" $text ".png";
    }
    else {
    
$cachename "cache/" $text ".png";
    }
 
// if (!file_exists($cachename)) {
$bbox imagettfbbox(710"./Kenteken.ttf"$text);

if (
$fixedwidth == "N") {
    
$width=110 $bbox[2];
    } else {
    
$width=628;
    }
    
    If (
$sidecode == || $sidecode == || $sidecode == 3) {
    
// Oldtimer kentekens
    
$letterpos=max(41floor(($width $bbox[2]) / 2));
    
$voorkant imagecreatefrompng("voorkant-blauw.png");
    
$achterkant imagecreatefrompng("achterkant-blauw.png");
    
$tussenin imagecreatefrompng("tussenin-blauw.png");
    
$bord imagecreatetruecolor($width,133);
    
    
//Steunplaatjes
    
imagecopy($bord$voorkant000040133);
    
imagecopy($bord$achterkant$width-4000040133);
    
imagecopyresized($bord$tussenin40000$width 801331133);
    
    
// Kenteken opmaak
    
$black imagecolorallocate($bord255255,255);
    
$beveltop imagecolorallocate($bord,  323947);
    
$bevelmiddle imagecolorallocate($bord768495);
    
$beveldark imagecolorallocate($bord0616);
    
imagettftext($bord710$letterpos103$beveltop"./Kenteken.ttf"$text);
    
imagettftext($bord710$letterpos 2105$bevelmiddle"./Kenteken.ttf"$text);
    
imagettftext($bord710$letterpos 6109$beveldark"./Kenteken.ttf"$text);
    
imagettftext($bord710$letterpos 4107$black"./Kenteken.ttf"$text);
    }
    
    Else {
    
// gele kentekens
    
$letterpos=max(71floor(($width $bbox[2]) / 2));
    
$voorkant imagecreatefrompng("voorkant.png");
    
$achterkant imagecreatefrompng("achterkant.png");
    
$tussenin imagecreatefrompng("tussenin.png");
    
$bord imagecreatetruecolor($width,133);
    
    
// Steunplaatjes
    
imagecopy($bord$voorkant000070133);
    
imagecopy($bord$achterkant$width-1500015133);
    
imagecopyresized($bord$tussenin70000$width 851331133);
    
    
// Kenteken opmaak
    
$black imagecolorallocate($bord000);
    
$beveltop imagecolorallocate($bord24720771);
    
$bevelmiddle imagecolorallocate($bord248216103);
    
$beveldark imagecolorallocate($bord2061613);
    
imagettftext($bord710$letterpos103$beveltop"./Kenteken.ttf"$text);
    
imagettftext($bord710$letterpos 2105$bevelmiddle"./Kenteken.ttf"$text);
    
imagettftext($bord710$letterpos 6109$beveldark"./Kenteken.ttf"$text);
    
imagettftext($bord710$letterpos 4107$black"./Kenteken.ttf"$text);
    }
    
    if (
$duplicaatcode <> "") {
      
// Duplicaatcode toevoeging
        
$secmin=strpos($text,'-',0);
        if (
$secmin) {
            
$bbox imagettfbbox(710"./Kenteken.ttf"substr($text,0,$secmin+1));
            
$black imagecolorallocate($bord000);
            
$beveltop imagecolorallocate($bord24720771);
            
$bevelmiddle imagecolorallocate($bord248216103);
            
$beveldark imagecolorallocate($bord2061613);
            
imagettftext($bord250$bbox[4]+6141$beveltop"./Kenteken.ttf"$duplicaatcode);
            
imagettftext($bord250$bbox[4]+6343$bevelmiddle"./Kenteken.ttf"$duplicaatcode);
            
imagettftext($bord250$bbox[4]+6747$beveldark"./Kenteken.ttf"$duplicaatcode);
            
imagettftext($bord250$bbox[4]+6545 $black"./Kenteken.ttf"$duplicaatcode);

        }    
    }
    
 
//   $secmin=strrpos($text,'-',0);
 //   if ($secmin) {
  //    $bbox = imagettfbbox(71, 0, "./Kenteken.ttf", 
//substr($text,0,$secmin+1));
  //    $tekentje = imagecreatefrompng("nl-teken.png");
   //   imagecopy($bord, $tekentje, $bbox[4]+49, 19, 0, 0, 28, 33);
   // }    
    
imagepng($bord$cachename);
 
// }
  
header("Content-type: image/png");
  
readfile($cachename);
?>