Postcode check/regulator v2
Door Joran den Houting, 13 jaar geleden, 19.356x bekeken
Een zeer simpele postcode check te gebruiken in alle denkbare php-scripts.
De class ziet er zo uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
class Postcode {
public $postcode;
// Check functie met true of false return
public function Check($postcode) {
$this->input = preg_replace('/[^A-Z0-9]/', "", strtoupper($postcode));
$this->result = (preg_match("/^\b[1-9]\d{3}\s*[A-Z]{2}\b$/", $this->input) ? true : false);
return $this->result;
}
// Wanneer de postcode geaccepteerd is een gereguleerde postcode terugsturen in het formaat 1234AB
public function Regulate($postcode) {
$this->postcode = ($this->result == true ? $this->input : false);
return $this->postcode;
}
}
?>
class Postcode {
public $postcode;
// Check functie met true of false return
public function Check($postcode) {
$this->input = preg_replace('/[^A-Z0-9]/', "", strtoupper($postcode));
$this->result = (preg_match("/^\b[1-9]\d{3}\s*[A-Z]{2}\b$/", $this->input) ? true : false);
return $this->result;
}
// Wanneer de postcode geaccepteerd is een gereguleerde postcode terugsturen in het formaat 1234AB
public function Regulate($postcode) {
$this->postcode = ($this->result == true ? $this->input : false);
return $this->postcode;
}
}
?>
Deze doet een check op geldigheid zoals bijvoorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
Geldig
======
1234AB
1234ab
1234 AB
1234 ab
Ongeldig
========
0234AB (Postcodes starten nooit met een 0)
1234B
123AB
123!AB
======
1234AB
1234ab
1234 AB
1234 ab
Ongeldig
========
0234AB (Postcodes starten nooit met een 0)
1234B
123AB
123!AB
Ook zorgt het script ervoor dat de input (zoals de voorbeelden hierboven) allemaal omgezet worden naar 1 standaard format. Alle geldige input's zoals de bovenstaande zullen als output 1234AB teruggeven, dus alle spaties en leestekens verwijderd en de letters omgevormd naar hoofdletters. Dit is zeer handig voor bijvoorbeeld opslag in een database, door alle postcodes op te slaan in 1 format kun je dus ook makkelijker zoeken op postcode e.d.
Uitvoeren van de class gaat als volgt:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$input = "1234 ab"; // Voorbeeld input
// Class starten
$postcode = new Postcode();
// Uitvoeren check
$postcode->Check($input);
?>
$input = "1234 ab"; // Voorbeeld input
// Class starten
$postcode = new Postcode();
// Uitvoeren check
$postcode->Check($input);
?>
Vervolgens kun je controleren of deze geldig is of niet in een standaard vorm of verkorte vorm:
Code (php)
Verkorte vorm:
Code (php)
1
2
3
4
2
3
4
<?php
// Controleren voor front-end in verkorte vorm
echo (($output = $postcode->Regulate()) != false ? $output : "Deze postcode is niet geldig.");
?>
// Controleren voor front-end in verkorte vorm
echo (($output = $postcode->Regulate()) != false ? $output : "Deze postcode is niet geldig.");
?>
Het bovenstaande script zal dan 1234AB echo'en.
Uiteraard staat een werkend script bijgevoegd voor download!
Gesponsorde koppelingen
PHP script bestanden
Er zijn 5 reacties op 'Postcode checkregulator v2'
Om te reageren heb je een account nodig en je moet ingelogd zijn.
PHP hulp
0 seconden vanaf nu