UHTMilk Posted March 12, 2006 Share Posted March 12, 2006 Hiya there,I have another newbie question for you good people out there. It's to do with splitting UK postcodes. I've got some of it worked out but wonder if you could lend any further advice. So far I've got: -[code]// Validate with thisif(!ereg("[A-Z]{1,2}[0-9][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{1,2}", strtoupper($postcode))) {}// Get outbound section with this$outpc=explode(" ",$dat['postcode']);$outbound=$outpc[1][/code]I need to end up with three varaibles; the full code (rh1 1nn), the outbound code (rh1), and the area code from the outbound (rh). The first two were easy but I don't know of a way to get the third. As uk postcodes can be both 1 and 2 a-z characters before the number. So I don't know if there is anyway to extract from the string up to the first number.I'd be grateful for any advice you could lend or maybe even a cleaner way of finding all three.Thanks in advance,Milk. Quote Link to comment Share on other sites More sharing options...
keeB Posted March 12, 2006 Share Posted March 12, 2006 [!--quoteo(post=354268:date=Mar 12 2006, 07:47 PM:name=UHTMilk)--][div class=\'quotetop\']QUOTE(UHTMilk @ Mar 12 2006, 07:47 PM) [snapback]354268[/snapback][/div][div class=\'quotemain\'][!--quotec--]Hiya there,I have another newbie question for you good people out there. It's to do with splitting UK postcodes. I've got some of it worked out but wonder if you could lend any further advice. So far I've got: -[code]// Validate with thisif(!ereg("[A-Z]{1,2}[0-9][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{1,2}", strtoupper($postcode))) {}// Get outbound section with this$outpc=explode(" ",$dat['postcode']);$outbound=$outpc[1][/code]I need to end up with three varaibles; the full code (rh1 1nn), the outbound code (rh1), and the area code from the outbound (rh). The first two were easy but I don't know of a way to get the third. As uk postcodes can be both 1 and 2 a-z characters before the number. So I don't know if there is anyway to extract from the string up to the first number.I'd be grateful for any advice you could lend or maybe even a cleaner way of finding all three.Thanks in advance,Milk.[/quote]Notice how in the strtoupper you are using $postcode, while in the explode statement you're using $dat['postcode'] .. i don't know the rest of your code, but that seems like it would be something to look in to. Quote Link to comment Share on other sites More sharing options...
UHTMilk Posted March 12, 2006 Author Share Posted March 12, 2006 [!--quoteo(post=354276:date=Mar 12 2006, 08:05 PM:name=keeB)--][div class=\'quotetop\']QUOTE(keeB @ Mar 12 2006, 08:05 PM) [snapback]354276[/snapback][/div][div class=\'quotemain\'][!--quotec--]Notice how in the strtoupper you are using $postcode, while in the explode statement you're using $dat['postcode'] .. i don't know the rest of your code, but that seems like it would be something to look in to.[/quote]Hiya, Thanks for getting back to me. The first one is validating from a form. The second example I used is where I'm pulling it from the db to compare. So it's no problems, but thanks for taking the time to look over it.Milk. Quote Link to comment Share on other sites More sharing options...
Barand Posted March 12, 2006 Share Posted March 12, 2006 try[code]$pc = 'rh1 1nn';list ($outpc, $local) = explode (' ', $pc);$area = $outpc{0};if (!is_numeric($outpc{1})) { $area .= $outpc{1}; $dist = substr($outpc, 2);}else $dist = substr($outpc, 1);echo $area, '-', $dist, '-', $local;[/code] Quote Link to comment Share on other sites More sharing options...
UHTMilk Posted March 12, 2006 Author Share Posted March 12, 2006 Hiya,Thank you again, you've helped me out before. When it comes to PHP you're a genius. It's worked fine. Thanks again mate,Milk.SOLVED Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.