Hallo,

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";
Bedankt voor jullie reacties.

@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.
Hallo johnny,

hier een voorbeeld.



<?php

$getbtwnumber = "NL123456789B08";
$getbtwa = substr($getbtwnumber, 2, 9);
$getbtwb = substr($getbtwnumber, -2);

echo $getbtwa;
echo $getbtwb;

?>
Hallo Randy,

Nou inderdaad soms kan het zo simpel zijn.!
Ik krijg nu het gewenste resultaat. Hartstikke bedank.
Het BTW-nummer is inmiddels redelijk Europese-eenheidsworst-opgebouwd:

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:<?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.";
?>

Niet dat het korter, sneller of makkelijker is, maar ik wilde wel iets PHP toevoegen aan de opbouw van een BTW-nummer.
@Eddy:
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.

[size=xsmall]Toevoeging op 28/10/2014 09:34:14:[/size]

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
waar zou je op willen explode-n?

Aangenomen dat het om steeds een Nederlands btwnummer gaat, is 2 x substr() veruit het eenvoudigst.
Een oplossing met een regex zou deze kunnen zijn:

if(preg_match_all("/^[A-Z]+([0-9]+)[A-Z]+([0-9]*)$/", $getbtwnumber, $outputArray))
{
  $getbtwa = $outputArray[1];
  $getbtwb = $outputArray[2];
}

Reageren