Shefarol Soluções Web

Separar nome do sobrenome em PHP - Voltar

O exemplo abaixo é utilizado para separar o nome do sobrenome dentro da mesma string muito utilizado em diversas situações em PHP, como por exemplo, mostrar apenas o nome do usuário logado, sem a necessidade de mostrar o nome completo.

<?php
	$nomeCompleto = 'Fábio Corrêa da Silva';
	echo 'Nome completo: ' . $nomeCompleto . '<br>';

	$primeiroNome = substr($nomeCompleto, 0, strpos($nomeCompleto, ' '));
	$sobrenome = trim(str_replace($primeiroNome, "", $nomeCompleto));
	echo 'Nome: '. $primeiroNome;
	echo '<br>';
	echo 'Sobrenome: '. $sobrenome;
?>

 

A impressão do código acima será:

Nome completo: Fábio Corrêa da Silva
Nome: Fábio
Sobrenome: Corrêa da Silva

A função substr() remove parte de uma string, ela possui 3 parâmetros, o primeiro é a string que contém todos os caracteres, o segundo é um valor inteiro referente à posição inicial da string resultante, e o terceito parâmetro (não obrigatório) outro valor inteiro que será o ponto de exclusão da string resultante.

Neste caso no terceiro parâmetro foi usada a função strpos() que possui dois parâmetros, o primeiro é a string completa e o segundo uma string que será encontrada na string completa, aqui a função retorna um valor inteiro referente à string encontrada, no nosso exemplo o valor (5), pois o "espaço em branco" está na quinta posição na string "$nomeCompleto".

Com isso temos na variável "$nome" a string 'Fábio', referente ao resultado da função "substr($nomeCompleto, 0, 5)".

Para o sobrenome foi utilizada a função str_replace() ela possui 3 parâmetros, o primeiro será a string procurada, o segundo a string que será substituída e o terceiro a string que será pesquisada. Então fica assim: procurar a string Fábio, substituir pela string espaço nulo na string Fábio Corrêa da Silva.

Porém o que resultou foi a string ' Corrêa da Silva', antes do Corrêa existe um espaço em branco, então para isso que foi utilizada a função trim(), que é responsável em remover os espaços em branco antes e depois de uma string.