For example, I have a phone number saved in a variable:
$numero = 5198765432
However, now I need to remove the ddd from it (51) to save it in another variable. How could I do that?
For example, I have a phone number saved in a variable:
$numero = 5198765432
However, now I need to remove the ddd from it (51) to save it in another variable. How could I do that?
One possible solution is to use substr
.
$numero = 5198765432;
$ddd_cliente = substr($numero, 0, 2);
$numero_cliente = substr($numero, 2);
echo "DDD: {$ddd_cliente} Número: {$numero_cliente}";
Another way using preg_replace()
:
$numero = 5198765432;
$ddd_cliente = preg_replace('/\A.{2}?\K[\d]+/', '', $numero);
$numero_cliente = preg_replace('/^\d{2}/', '', $numero);
echo "DDD: {$ddd_cliente} Número: {$numero_cliente}";
$numero = 5198765432;
$ddd = substr($numero, 0, 2);
$numero = substr($numero, 2);
var_dump($ddd);
var_dump($numero);
There are several ways. One possibility would be substr
$numero = substr($numero, 2);
So it removes the first two characters of the string
Introducing another approach, you can work the string as an array (faster than substr
) and retrieve the first 2 characters, so you have the DDD and the phone in separate variables.
$phone = '5198765432';
$ddd = $phone[0] . $phone[1];
$phone = substr( $phone , 2 );
// output: 51 ** 98765432
echo $ddd . '**' . $phone;
If your input has a mask and the format is (00) 0000-0000
or (00) 00000-0000
, you can use REGEX:
/**
* Função auxiliar para extrair DDD e telefone de uma string
*
* (string) telefone (00) 0000-0000 ou (00) 00000-0000
* (string) retorno 'ddd' ou qualquer outra coisa para retornar o telefone
*/
function dddTel(telefone, retorno) {
var ddd;
// Remove todos os caractéres que não são números
telefone = telefone.replace(/\D/g, '');
// (00) 0000-0000 agora é 0000000000, etc
if (telefone.length === 10) {
// Telefone fixo
ddd = telefone.substr(0, 2);
telefone = telefone.substr(2, 8);
} else if (telefone.length === 11) {
// Telefone celular
ddd = telefone.substr(0, 2);
telefone = telefone.substr(2, 9);
} else {
// Formato não suportado
console.log('dddTel() falhou. O telefone informado está num formato não suportado.');
}
if (retorno == 'ddd') {
return ddd;
} else {
return telefone;
}
}
// Uso:
var telefone = (31) 9123-45678;
ddd = dddTel(telefone, 'ddd'); // 31
tel = dddTel(telefone); // 912345678