How to remove ddd from a number

3

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?

    
asked by anonymous 27.04.2015 / 19:25

5 answers

8

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}";

DEMO

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}";

DEMO

    
27.04.2015 / 19:30
4
$numero = 5198765432;
$ddd = substr($numero, 0, 2);
$numero = substr($numero, 2);

var_dump($ddd);
var_dump($numero);
    
27.04.2015 / 19:32
3

There are several ways. One possibility would be substr

$numero = substr($numero, 2);

So it removes the first two characters of the string

    
27.04.2015 / 19:31
3

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;
    
27.04.2015 / 19:30
0

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
    
02.02.2018 / 14:04