Nasıl bir tire ile bu dize ayırabilirsiniz?

5 Cevap

Yani öylesine, $phone = "123456790" gibi telefon numaralarını saklayan bir dize var. 123-456-7890: Nasıl bu formatta yazdırmak için ayırabilirsiniz?

5 Cevap

$areacode = substr($phone, 0, 3);
$prefix   = substr($phone, 3, 3);
$number   = substr($phone, 6, 4);

echo "$areacode-$prefix-$number";

Ayrıca düzenli ifadeler ile yapabilirsiniz:

preg_match("/(\d{3})(\d{3})(\d{4})/",$phone,$matches);
echo "$matches[1]-$matches[2]-$matches[3]";

Orada daha fazla yolu vardır, ama ya çalışacaktır.

Aşağıdaki kodu da giriş doğrular.

preg_match('/^(\d{3})(\d{3})(\d{4})$/', $phone, $matches);

if ($matches) {
    echo(implode('-', array_slice($matches, 1)));
}
else {
    echo($phone); // you might want to handle wrong format another way
}
$p = $phone; 
echo "$p[0]$p[1]$p[2]-$p[3]$p[4]-$p[5]$p[6]$p[7]$p[8]";

Az işlevini çağırır. :)

echo substr($phone, 0, 3) . '-' . substr($phone, 3, 3) . '-' . substr($phone, 6);

substr()

Daha sıradanifade :)

$phone = "1234567890";
echo preg_replace('/^(\d{3})(\d{3})(\d{4})$/', '\1-\2-\3', $phone);