Incrementar Número em um texto e por Zero à Esquerda com PHP

Recebi um comentário em um de meus artigos aqui no blog e resolvi criar este post para responder a dúvida do leitor. No caso, a dúvida dele era exatamente como incrementar um valor que estava no meio de um texto. Veja também como colocar zero a esquerda de um dado número para manter um número de algarismos desejado, mas somente quando necessário.

Veja a dúvida do usuário:


Amigo, estou com um problema, tenho um numero na tabela “documento” AT-00025870/14, quero incrementar + 1 antes da / para que ficasse assim: AT-00025871/14. AT-00025872/14, AT-00025873/14… Isso dentro de um determinado periodo.

Incrementar Número em um texto e por Zero à Esquerda com PHP

Bom, para deixar o código mais objetivo vou subentender que você já fez o select na tabela e obteve o código AT-00025870/14. Com posso deste código você precisa agora dar um jeito de incrementar o número 00025870. Como fazer isto? Veja o código abaixo, comento depois:

1
2
3
4
5
6
7
8
9
10
11
$codigo = 'AT-00025870/14';
 
preg_match('/AT-([0-9]+)\//',$codigo,$valor);
 
$proximo = $valor[1] + 1;
 
$proximo = str_pad($proximo,8,"0",STR_PAD_LEFT);
 
$codigo = str_replace($valor[1], $proximo, $codigo);
 
echo $codigo;
$codigo = 'AT-00025870/14';

preg_match('/AT-([0-9]+)\//',$codigo,$valor);

$proximo = $valor[1] + 1;

$proximo = str_pad($proximo,8,"0",STR_PAD_LEFT);

$codigo = str_replace($valor[1], $proximo, $codigo);

echo $codigo;

Mas o que é feito aí? Veja só:

– Primeiro eu obtenho apenas o número que deve ser incrementado da string, utilizando para isso um preg_match.
– Em seguida ou incremento este valor e guardo o próximo número numa variável chamada exatamente $proximo.
– Aconteceu de o número perder seus zeros da esquerda após ser incrementado (creio que o PHP elimina zeros a esquerda quando converte números para inteiros), então utilizei a função str_pad para restaurá-los.
– Na sequência substituo o número pelo valor contido na variável $próximo e guardo a nova string na variável $codigo.

Por fim, eu imprimi na tela o valor de $código, que ficou AT-00025871/14. Você, caso necessite, poderá em vez de imprimir na tela, fazer um update no banco de dados ou inserir um novo registro. Isto vai depender de teu objetivo final, contudo, creio que com este código você conseguirá incrementar números em textos e por zero a esquerda de números para manter o mesmo comprimento original.

Até o próximo artigo aqui no blog!

Incrementar Número em um texto e por Zero à Esquerda com PHP
4.8 (95.71%) 14 vote[s]

Leave a Reply