Autoformat Telefonnummer

Dieser PHP-Code zerlegt eine deutsche Telefonnummer in ihre Bestandteile (land, vorwahl, nummer, durchwahl). So könnte Ihr sie wie gewünscht umformatieren. Die Vorwahlen, die zu ergänzen sind, gibt es bei der Bundesnetzagentur.

Hier eine gezippte Varianten inkl. der Vorwahlen:

function splitPhoneNumber($number) {
        $number = str_replace('(0)','',$number);
        $number = str_replace(' ','',$number);
        //hier alle deutschen Vorwahlen ergänzen (Liste gibt es bei der Bundesnetzagentur)
        $vorwahlen = array('201','202','und so weiter');
        //hier alle deutschen Mobilvorwahlen ergänzen (Liste gibt es bei der Bundesnetzagentur)
        $mobile = array('151','152','157','und so weiter');
        $vorwahlen = array_merge($vorwahlen,$mobile);
        $number = trim($number);
        $array = [
            'land' => '49',
            'vorwahl' => '',
            'nummer' => '',
            'durchwahl' => ''
        ];
        $result = (bool) preg_match('/^(\+|00)([0-9][0-9])(.*)/', $number, $matches);
        if($result) {
            $array['land'] = $matches[2];
            $number = trim($matches[3]);
        }
        $number = str_replace('(','',$number);
        $number = str_replace(')','',$number);
        $gefundeneVorwahl = '';
        $finalpos = 0;
        foreach($vorwahlen as $vorwahl) {
            $pos = strpos($number,$vorwahl);
            if($pos !== false && $pos <= 1) {
                $finalpos = $pos;
                $gefundeneVorwahl = $vorwahl;
            }
        }
        $array['vorwahl'] = $gefundeneVorwahl;
        $number = trim(substr($number,$finalpos+strlen($gefundeneVorwahl)),"/-\ \t\n\r\0\x0B");
        $parts = explode("-",$number);
        if(count($parts) > 1) {
            $array['nummer'] = trim($parts[0]);
            $array['durchwahl'] = trim($parts[1]);
        } else {
            $array['nummer'] = trim($number);
        }
        return $array;
    }

Ähnliche Beiträge