PHP string (btwnummer) opsplitsen
Ik heb al meerdere functies geprobeerd, zoals: explode(), substr(), str_split() en meer van dit soort functies maar ik krijg niet het resultaat wat ik wens.
Ik heb een NL btwnummer op geslagen in de database. Deze staat er als volgt in: NL123456789B08
Ik wil dit gegeven uit de database halen en vervolgens opsplitsen.
Ik wil namelijk een bewerking uitvoeren op de reeks van 9 cijfers (dus tussen NL en B) en ik wil een bewerking kunnen uitvoeren op de 2 cijfers die na de letter B komen.
Wil dus vanuit de string $getbtwnumber = "NL123456789B08" het volgende resultaat krijgen:
$getbtwa = "123456789";
$getbtwb = "08";
Helaas weet ik niet wat de regex code is.
Hier staat meer;
http://www.pfz.nl/wiki/invoer-validatie/#Geldig_BTW.2FVAT_nummer
@Randy: op deze pagina ben ik ook geweest en heb ook de substr() functie geprobeerd, maar daar wordt het volgens mij niet erg netjes van... Kun je me laten zien hoe jij het stukje script hebt opgebouwd om alleen de twee gewenste reeksen over te houden?
Ben benieuwd.
hier een voorbeeld.
Nou inderdaad soms kan het zo simpel zijn.!
Ik krijg nu het gewenste resultaat. Hartstikke bedank.
Landcode, 2 hoofdletters, ISO-code.
Burger-service-nummer van oprichter, 9 cijfers (oftewel: je sofi-nummer)
De letter B, van BTW
Twee cijfers, opeenlopende nummering van bedrijven bijbehorend bij je BSN.
Dus mijn bedrijf is:
NL 181300539 B 01
Wat dus ook kan:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
function ontcijfer_btw_nummer($string)
{
$gegevens[] = substr($string, 0, 2);
$gegevens[] = substr($string, 2, 9);
$gegevens[] = substr($string, 12, 2);
return $gegevens;
}
list($landcode, $bsn_nummer, $bedrijfsid) = ontcijfer_btw_nummer('NL181300539B01');
echo "In $landcode is meneer #$bsn_nummer begonnen aan bedrijf #$bedrijfsid.";
?>
function ontcijfer_btw_nummer($string)
{
$gegevens[] = substr($string, 0, 2);
$gegevens[] = substr($string, 2, 9);
$gegevens[] = substr($string, 12, 2);
return $gegevens;
}
list($landcode, $bsn_nummer, $bedrijfsid) = ontcijfer_btw_nummer('NL181300539B01');
echo "In $landcode is meneer #$bsn_nummer begonnen aan bedrijf #$bedrijfsid.";
?>
Niet dat het korter, sneller of makkelijker is, maar ik wilde wel iets PHP toevoegen aan de opbouw van een BTW-nummer.
niet zo met je bsn strooien. Niet voor niets wordt altijd gewaarschuwd om niet overal je ID te laten kopieren: en als je dat doet, je bsn af te dekken.
Met een regex zou het kunnen, maar aangezien de opbouw altijd gelijk is, is het gebruik van substr() sneller.
Toevoeging op 28/10/2014 09:34:14:
Het heeft trouwens niet zo veel zin om NL uit de string te vissen: de btw-nummers hebben per land een andere opbouw.
https://www.btw-nummer-controle.nl/Userfiles/images/Format%20btw-nummers%20EU(4).pdf
Aangenomen dat het om steeds een Nederlands btwnummer gaat, is 2 x substr() veruit het eenvoudigst.
[off-topic]
Daarom vind ik het ook zo grappig dat je als bedrijf/zzp'er verplicht bent je BTW-nummer te vermelden in zo ongeveer elke communicatie met de buitenwered. Op zich niets mis mee, ware het niet dat dat BTW-nummer praktisch hetzelfde is als het BSN dat je juist zoveel mogelijk uit de openbaarheid moet zien te houden...
[/off-topic]
Gewijzigd op 28/10/2014 09:59:34 door Willem vp
Je weet dan de 2 letters NL zijn, en de letter voor de laatste 2 cijfers is een B.
Staat er een ander land genoemd, dan is de opbouw anders. Bijv. Oostenrijk: ATU123456789
Waarbij de U vast voor Umsatz staat.
kijken of phphulp de link nu wel snapt:
https://www.btw-nummer-controle.nl/Userfiles/images/Format%20btw-nummers%20EU.pdf
Toevoeging op 28/10/2014 10:13:20:
Overigens geldt de overeenkomst tussen BSN en btwnummer alleen voor eenmanszaken, maar niet voor BV's
Zie ook http://www.pfz.nl/wiki/invoer-validatie/#regular-expressions-geldig-btwvat-nummer voor controle of het nummer geldig zou kúnnen zijn.