Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Need to re-format phone number entries in a PHP Formmail script

Tags:

regex

php

I have a simple text field for "Phone Number" in a contact form on a client's website. The formmail script returns whatever the user types into the field. For example, they'll receive "000-000-0000", "0000000000", (000) 000-000, etc. The client would like to receive all phone numbers in this form: 000-000-0000. Can someone provide a simple script that would strip out all extraneous punctuation, then re-insert the dashes?

I'm not a programmer, just a designer so I can't provide any existing code for anyone to evaluate, though I'll be happy to email the formmail script to anyone who can help.

Thanks. A. Grant

like image 435
ASGrant Avatar asked Dec 20 '08 21:12

ASGrant


1 Answers

<?php
function formatPhone($number)
 {
    $number = preg_replace('/[^\d]/', '', $number); //Remove anything that is not a number
    if(strlen($number) < 10)
     {
        return false;
     }
    return substr($number, 0, 3) . '-' . substr($number, 3, 3) . '-' . substr($number, 6);
 }


foreach(array('(858)5551212', '(858)555-1212', '8585551212','858-555-1212', '123') as $number)
 {
    $number = formatPhone($number);
    if($number)
      {
          echo $number . "\n";
      }
 }
 ?>

the above returns:

858-555-1212
858-555-1212
858-555-1212
858-555-1212
like image 169
UnkwnTech Avatar answered Oct 01 '22 11:10

UnkwnTech