huisnummer toevoeging splitsen

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.267
Hallo

Huisnummer en toevoeging

99A

Kan ik met php het huisnummer opsplitsen? dus de CIJFERS en LETTERS
dus 99 en A
na lang zoeken geen resultaat
Kan de laatste char nemen
PHP:
$huisn_tv[-1]
maar huisnummer kan ook geen toevoeging bevatten en dan krijg ik de 9
 
Het strippen van tekens is nooit een goede oplossing voor zulke zaken.
Er is intelligentie nodig, en die kan je bereiken door een reguliere expressie te gebruiken:

PHP:
<?php
$str = "99A";
$split = preg_split('/(?<=[0-9])(?=[a-z]+)/i',$str);
print_r($split);
 
Bedankt

Om het hele verhaal te vertellen

ik vul in form in EEN input voorbeeld 1122AB 25C

PHP:
$postc_huisnr = explode(" ", $postc_huisnr);
        $postc_naar = strtoupper($postc_huisnr[0]); // piece1
        $huisnr_naar = strtoupper($postc_huisnr[1]); // piece2

tot nu toe haalde ik dus postcode en huisnummer toevoeging eruit dus; 1122AB 25C met explode

Nu heb ik dus toevoeging ook apart nodig , indien die er is

1122AB 25 C
 
Die postcode kan je met explode op een spatie prima los behandelen in het eerste element.
Het tweede element is het huisnummer met de toevoeging, en dat scheidt de reguliere expressie van elkaar.
 
PHP:
$str = "$huisnr_naar";
$split_huisnrToev = preg_split('/(?<=[0-9])(?=[a-z]+)/i',$str);
if (empty($split_huisnrToev)) {
   $tv = '' ;
} else {	
	 $tv =  $split_huisnrToev[1];  // regel 74
}

FF controleren voor als er wel/geen toevoeging is
Blijf melding houden
Notice: Undefined offset: 1 regel 74
 
Wat is de input?
Variabelen horen overigens niet tussen quotes.
 
uit POST input voorbeeld 1233AA 25

PHP:
    $postc_huisnr_naar  = strtoupper($_POST['postc_huisnr']);	// uit POST 1233AA 25	
    $postc_huisnr_naar = explode(" ", $postc_huisnr_naar);
    $postc_naar = strtoupper($postc_huisnr_naar[0]); // postcode
    $huisnr_naar = strtoupper($postc_huisnr_naar[1]); //huisnummer MET eventuele toevoeging

$str = $huisnr_naar;
$split_huisnrToev = preg_split('/(?<=[0-9])(?=[a-z]+)/i',$str); // deel in huisnummer EN eventuele toevoeging
if (empty($split_huisnrToev)) {
   $tv = '' ; // Als geen toevoeging 
} else {	
	 $tv =  $tv; //Indien toevoeging
}


naschrift
$tv zie ik niet
 
Laatst bewerkt:
Je echo'ed $tv ook niet, dus die je die ook niet.
 
Anders moet je de waardes tussentijds even tijdelijk echo'en. Dan zie je precies wat er gebeurd.
 
PHP:
$split_huisnrToev = preg_split('/(?<=[0-9])(?=[a-z]+)/i',$str);
echo $split_huisnrToev;
// 73

Notice: Array to string conversion in regel 73
 
Dat is een array, en dat kan je niet echo'en. Wel uitlezen met print_r()
 
:(

De uitvoer klopt ff verder zoeken

54 A
PHP:
Array ( [0] => 54 [1] => A )
 
De conditie kan niet met de array omgaan , daar ga ik in de fout denk ij




21.11uur
PHP:
echo $huisnr_naar; // gaat goed nummer 25
	//$tv =  $huisnr_naar;
$str = $huisnr_naar;
//echo $str;
//$str = $str;
$split_huisnrToev = preg_split('/(?<=[0-9])(?=[a-z]+)/i',$str);
$huisnrToev = $split_huisnrToev[1]; //74
print_r($huisnrToev);

Notice: Undefined offset: 1 in ...regel 74

array is leeg , dat klopt

Conditie aanpassen~?
 
Laatst bewerkt:
Je kan een bericht ook bewerken hoor, i.p.v. steeds achter elkaar te posten :)

ANyway: Waar komt $tv op lijn 11 vandaan? Uit de lucht gevallen? :)
 
Laatst bewerkt:
Je kent een lege waarde $tv toe aan een lege waarde $tv?
Okay?
 
Je kent een lege waarde $tv toe aan een lege waarde $tv?
Okay?


PHP:
$split_huisnrToev = preg_split('/(?<=[0-9])(?=[a-z]+)/i',$str);
$huisnrToev = $split_huisnrToev[1];
print_r($huisnrToev);
if (empty($$huisnrToev)) {
   $tv = $huisnrToev ;
} else 
	 $tv = '';

Moet ff ruimen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan