Separate street and number from an address


/ Published in: PHP
Save to your folder(s)

Straatnamen en huisnummer splitsen, hieronder diverse types straatnamen
Bron: http://www.pfz.nl/archief/965267-adres-splitsen-in-straatnaam-en-huisnr/


Copy this code and paste it in your HTML
  1. /*
  2.  
  3. Straatnamen en huisnummer splitsen, hieronder diverse types straatnamen
  4. Bron: http://www.pfz.nl/archief/965267-adres-splitsen-in-straatnaam-en-huisnr/
  5.  
  6. */
  7.  
  8. $straten = array(
  9. 'Dorpstraat 2',
  10. 'Laan 1933 2', // Ede, Holland
  11. '18 Septemberplein 12', // Eindhoven, Holland
  12. 'Kerkstraat 42-f3',
  13. 'Saturnusstraat 60-75',
  14. 'Kerk straat 2b',
  15. "1, rue de l'eglise",
  16. '42nd street, 1337a',
  17. '1e Constantijn Huigensstraat 9b',
  18. 'Maas-Waalweg 15',
  19. 'De Dompelaar 1 B',
  20. );
  21.  
  22. $pattern = '#^([a-z0-9]*) ([0-9]{1,5})([a-z0-9\-/]{0,})$#i';
  23. $pattern = '#^([a-z0-9 [:punct:]\']*) ([0-9]{1,5})([a-z0-9 \-/]{0,})$#i';
  24.  
  25. $goed = 0;
  26. $fout = 0;
  27.  
  28. $data = array();
  29.  
  30. foreach($straten as $straat) {
  31. // Franse adressen, al werkt het niet...
  32. if (preg_match("#^([0-9]),#", $straat)) {
  33. $patternFrans = '#^([0-9]), ([a-z0-9\-/ \']*) ([a-z0-9\-/ ]{0,})#i';
  34. preg_match($patternFrans, $straat, $aMatch);
  35.  
  36. $straatnaam = $aMatch[2];
  37. $huisnummer = $aMatch[1];
  38. $huisnrtoev = (isset($aMatch[3])) ? $aMatch[3] : '';
  39. } else {
  40. preg_match($pattern, $straat, $aMatch);
  41.  
  42. $straatnaam = $aMatch[1];
  43. $huisnummer = $aMatch[2];
  44. $huisnrtoev = (isset($aMatch[3])) ? $aMatch[3] : '';
  45. }
  46.  
  47. $succes = false;
  48. if (empty($straatnaam) || empty($huisnummer)) {
  49. $fout++;
  50. } else {
  51. $succes = true;
  52. $goed++;
  53. }
  54.  
  55. $data[] = '<div style="background-color: '. ($succes ? 'lightgreen' : 'red') .'">';
  56. $data[] = $straat;
  57. $data[] = 'straat : '. $straatnaam;
  58. $data[] = 'nummer : '. $huisnummer;
  59. $data[] = 'toevoeging : '. $huisnrtoev;
  60. $data[] = '</div>';
  61. }
  62.  
  63. echo 'Goed: '. $goed . PHP_EOL;
  64. echo 'Fout: '. $fout . PHP_EOL;
  65. echo PHP_EOL;
  66. echo implode(PHP_EOL, $data);

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.