Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #3917

Re: Phone number formatting

Path csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!news.musoftware.de!wum.musoftware.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From Sandman <mr@sandman.net>
Newsgroups comp.lang.php
Subject Re: Phone number formatting
Date Thu, 24 Nov 2011 14:22:37 +0100
Lines 75
Message-ID <mr-96F3D1.14223724112011@News.Individual.NET> (permalink)
References <mr-CCE3D7.08391724112011@News.Individual.NET> <jal3k2$61m$1@dont-email.me>
Mime-Version 1.0
Content-Type text/plain; charset=UTF-8
Content-Transfer-Encoding 8bit
X-Trace individual.net KW88nuB8BGVG0OHsM43olApnVmwZzOJrNhkvEPWF9yBv38puM=
X-Orig-Path mr
Cancel-Lock sha1:Ww8DK5YJB6Ac6TkKgA9Bnul61eo=
User-Agent MT-NewsWatcher/3.5.2 (Intel Mac OS X)
X-Face $@,Vfa$,)%=Qa7L]y)&oZj_\EiHc}}A<Y3TvbI2&|e"bE9zc[o<ThMgB4%*L$b1YsNl!/ <lHO$>f0Bei"4a_%)"c6TQ+P/:53>;PNGuWUmkqyeN-qM65foJ[;T_(k;>]&G\T4Lhm:2 ujye2_,iUJFE;NZn>y;.|-hl7g~bIOF1qG\o<?]4mXkW*mT3]{Bn&VwP7(M0uYnGA!V!? {"y?BkBDW6e-.=I5
X-Killfiled yttrx, gallopinginsanity.com, Mark Kent, Maverick, Nasht.n, NRen2, MuahMan, weedhopper, PC Guy, Brian, nospam@nospam.com, Oxford, Jim Lee Jr., Mocassin Joe, zara, Chance Furlong, Robert Whelan, jt2002a@hotmail.com
Xref x330-a1.tempe.blueboxinc.net comp.lang.php:3917

Show key headers only | View raw


In article <jal3k2$61m$1@dont-email.me>,
 "Álvaro G. Vicario" <alvaro.NOSPAMTHANX@demogracia.com.invalid> 
 wrote:

> El 24/11/2011 8:39, Sandman escribió/wrote:
> >   I have an array with formattings, that looks like this:
> >
> > $formats = array("### ##", "## ## ##", "### ## ##");
> >
> > The phone number above is never more than 7 digits long (as far as I
> > know) in Sweden, so these formats should suffice. Let me explain, in
> > the array, we have formats for 5, 6  and 7 digit phone numbers, set up
> > in a specific way. So this phone number in my example above is 7
> > digits, so it should be formatted as such:
> >
> >      305 19 47
> 
> It's an interesting problem. I've came up with this proof of concept:
> 
> function format_phone_number($number){
> 	$formats = array(
> 		5 => "### ##",
> 		6 => "## ## ##",
> 		7 => "### ## ##"
> 	);
> 
> 	$len = strlen($number);
> 
> 	if( isset($formats[$len]) ){
> 		$format = strtr($formats[$len], array('#' => '%s'));
> 		$digits = str_split($number);
> 		return vsprintf($format, $digits);
> 	}else{
> 		return $number;
> 	}
> }
> 
> Basically, it converts your expression into a printf-compatible format.
> 
> Of course, it'd be easier to use such expression from the beginning:
> 
> function format_phone_number($number){
> 	$formats = array(
> 		5 => "%s%s%s %s%s",
> 		6 => "%s%s %s%s %s%s",
> 		7 => "%s%s%s %s%s %s%s"
> 	);
> 
> 	$len = strlen($number);
> 
> 	if( isset($formats[$len]) ){
> 		$digits = str_split($number);
> 		return vsprintf($formats[$len], $digits);
> 	}else{
> 		return $number;
> 	}
> }
> 
> You could replace %s with %d if you validate that $number is an integer.

Thank you! Your suggestions sparked some ideas that I followed, 
especially the printf-friendly conversion. I also changed the formats 
to include the area code, as such:

    "A-## ## ##"

And replaced it all to

    "%s-%s%s %s%s %s%s"

%s is necessary since %d will strip leading zeroes.


-- 
Sandman[.net]

Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Phone number formatting Sandman <mr@sandman.net> - 2011-11-24 08:39 +0100
  Re: Phone number formatting Jonathan Stein <jstein@image.dk> - 2011-11-24 09:55 +0100
    Re: Phone number formatting Sandman <mr@sandman.net> - 2011-11-24 13:27 +0100
      Re: Phone number formatting Jonathan Stein <jstein@image.dk> - 2011-11-24 17:45 +0100
  Re: Phone number formatting "Álvaro G. Vicario" <alvaro.NOSPAMTHANX@demogracia.com.invalid> - 2011-11-24 10:43 +0100
    Re: Phone number formatting Sandman <mr@sandman.net> - 2011-11-24 14:22 +0100
  Re: Phone number formatting Denis McMahon <denismfmcmahon@gmail.com> - 2011-11-24 15:17 +0000
    Re: Phone number formatting Sandman <mr@sandman.net> - 2011-11-25 09:09 +0100
  Re: Phone number formatting Denis McMahon <denismfmcmahon@gmail.com> - 2011-11-26 19:39 +0000
    Re: Phone number formatting Sandman <mr@sandman.net> - 2011-11-28 08:39 +0100

csiph-web