Como separar números de documentos... em PHP

Fonte da imagem: http://g1.globo.com
O Victor Magalhães fez uma pergunta interessante em um Grupo do Facebook, ele queria separar um número como este: 2012622000254806, para deixar assim: 2012.62.20002548-06, é uma coisa simples de fazer, existe vários modos, mais por enquanto vou mostrar dois métodos de fazer isto obtendo o mesmo resultado, uma desse métodos é o que foi respondido pelo Roberto Coelho, que consiste em pegar substrings usando a substr, veja o exemplo abaixo.
// variável com os números

$num = "2012622000254806";

// pega os primeiros 4 dígitos

$a = substr($num, 0, 4);

// pegas os 2 próximos dígitos

$b = substr($num, 4, 2);

// pega os próximos 8 dígitos

$c = substr($num, 5, 8);

// pega os últimos 2 dígitos

$d = substr($num, 9, 2);

// junta tudo separando pelos respectivos separadores

$r = $a . "." . $b . "." . $c . "-" . $d;
esse método funciona como esperado, mais são muitas linhas para pouca coisa não acha ?, então prefiro o segundo método.
O outro método é usar Regex(Expressões Regulares), para pegar os valores que queremos, veja o exemplo abaixo.
// variável com os números

$str = "2012622000254806";

// Regex de pesquisa

$search = array('#([0-9]{4})([0-9]{2})([0-9]{8})([0-9]{2})#');

// Regex de substituição.

$replace = array("$1.$2.$3-$4");

// e usamos a preg_replace (consulte o manual do PHP) para substituir.

// eu usei duas array para fazer a substituição, mais poderia ter usado string's,

// é por gosto de cada um mesmo.

$result = preg_replace($search, $replace, $str);
É só isso simples assim, espero que gostem, e se eu achar outros métodos, eu adicionarei ao post, e se souberem de algum comente, se for coerente eu adiciono.

Tutorial criado por Victor Aurélio S.

Compartilhe no:

Dono do blog e Autor.
Possui conhecimento em diversos assuntos e atualmente se dedica ao blog para ensinar coisas e dar soluções através dos problemas que ele mesmo se depara em seu desktop e na Web.

1 Resposta em "Como separar números de documentos... em PHP"

Eu espero que voce...

1. Comente com moderação.
2. Sugira ou Opine.
3. Divulgue.