note 57097 added to function.sscanf
| From: | Fuzzmaster at osu1 dot php dot net | Date: | Fri, 23 Sep 2005 14:14:07 +0000 |
| Subject: | note 57097 added to function.sscanf | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-95660@lists.php.net to get a copy of this message | ||
Building a better Phone Format. This function, a variation of prev. posts (in theory):
Should stip all non-numeric characters.
Treat partial numbers as extensions.
Treat 8 - 9 digit numbers as phone+ext.
Be kind I'm a newbie.
<?php
// ##### Format String as Phone Number
Function formatPH($ph)
{
$ph = ereg_replace ('[^0-9]+', '', $ph); // ##### Strip all
Non-Numeric Characters
$phlen = strlen($ph);
switch (TRUE)
{
case ($phlen < 7):
$ext = $ph;
break;
case ($phlen == 7):
sscanf($ph, "%3s%4s", $pfx, $exc);
break;
case ($phlen > 7 AND $phlen < 10):
sscanf($ph, "%3s%4s%s", $pfx, $exc, $ext);
break;
case ($phlen == 10):
sscanf($ph, "%3s%3s%4s", $area, $pfx, $exc);
break;
case ($phlen == 11):
sscanf($ph, "%1s%3s%3s%4s", $cty, $area, $pfx, $exc);
break;
case ($phlen > 11):
sscanf($ph, "%1s%3s%3s%4s%s", $cty, $area, $pfx, $exc, $ext);
break;
}
$out = '';
$out .= isset($cty) ? $cty.' ' : '';
$out .= isset($area) ? '('.$area.') ' : '';
$out .= isset($pfx) ? $pfx.' - ' : '';
$out .= isset($exc) ? $exc.' ' : '';
$out .= isset($ext) ? 'x'.$ext : '';
return $out;
}
?>
----
Manual Page -- http://www.php.net/manual/en/function.sscanf.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+57097
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+57097&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+57097&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+57097&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+57097&report=yes&reason=useless
Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+57097&report=yes&reason=non-english
Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+57097&report=yes&reason=already+in+docs
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+57097&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+57097&report=yes
Search -- http://master.php.net/manage/user-notes.php