Du bist hier: Computerzeugs > PHP Snippets > Telefon-Nummern auf ein einheitliches Format bringen

Telefon-Nummern auf ein einheitliches Format bringen


/**
 * Bringt Telefonnummern auf einen einheitlichen Stand
 * Format: 49-351-1234567
 * Daraus kann dann sehr einfach jede beliebige andere Form
 * dargestellt werden (+0049, +49, ... (351) .... etc)
 */
function normalizeTelNumbers($telnr, $default_country = '49')
{
    if ($telnr == '') return '';
    $replace_from = array(' ', '(0)', '(', ')', '00', '+', '/', '--');
    $replace_to = array('', '-', '', '-', '', '', '-', '-');
    $telnr = str_replace($replace_from, $replace_to, $telnr);
    $a = explode('-', $telnr);
    $m = count($a);
    for ($i = 0; $i < $m ; $i++) {
        $p =& $a[$i];
        if (substr($p, 0, 1) == '0') {
            $a[$i] = substr($p, 1);
        }
    }
    if ($m < 3) {
        if (strlen($a[0]) > 2) { // > 2 so no country code
            array_unshift($a, $default_country);
        }
    }
    return implode('-', $a);
}

Beispiele


echo normalizeTelNumbers('49-1743144196'). '<br />';
echo normalizeTelNumbers('351 1231318'). '<br />';
echo normalizeTelNumbers('0351 12 31 31 8'). '<br />';
echo normalizeTelNumbers('(0351) 12 31 31 8'). '<br />';
echo normalizeTelNumbers('0351 / 12 31 31 8'). '<br />';
echo normalizeTelNumbers('49 /0351/ 12 31 31 8'). '<br />';
echo normalizeTelNumbers('+49 /0351/ 12 31 31 8'). '<br />';
echo normalizeTelNumbers('0049 (0) 351/ 12 31 31 8'). '<br />';
echo normalizeTelNumbers('0049 / (0) 351/ 12 31 31 8'). '<br />';