Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

omm62

[Resolvido] Pegar iniciais de nome e sobrenome

Recommended Posts

Boa dia pessoal. Tô precisando de ajuda no seguinte: tenho que formar logins em uma base de dados mysql já existente. Esses logins serão formados pelo nome de trabalho + as iniciais do nome e sobrenome. Na base já tenho o nome de trabalho e queria pegar as inicias para formar um campo com as inicias desses nomes e a partir dai formar os logins. Ocorre que a base tem 2500 registros. Agradeço antecipadamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nome e sobrenome em um mesmo campo. Tem um campo "nome de trabalho" tipo "CARLOS DA SILVA AMORIM" nome de trabalho "AMORIM". Desejo pegar as inicias CSA e compor um campo chamado login que ficaria, neste caso, "AMORIMCSA"

 

Gabriel, pelo que entendi da funca substr ela pega parte de uma string sim. O que ocorre é que o conteúdo de meu campo "nome" é variável com então eu definiria os parâmetros deste exemplo?

<?php
$rest = substr("abcdef", -1);    // returns "f"
$rest = substr("abcdef", -2);    // returns "ef"
$rest = substr("abcdef", -3, 1); // returns "d"
?>
Nele a string tem um número definido de caracteres.

Compartilhar este post


Link para o post
Compartilhar em outros sites

function Iniciais($nome,$minusculas = true){
preg_match_all('/\s?([A-Z])/',$nome,$matches);
$ret = implode('',$matches[1]);
return $minusculas?
	strtolower($ret) :
	$ret;
}

echo Iniciais('Evandro Franco de Oliveira');

 

O segundo parâmetro converte o resultado em minúsculos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

function Iniciais($nome,$minusculas = true){
preg_match_all('/\s?([A-Z])/',$nome,$matches);
$ret = implode('',$matches[1]);
return $minusculas?
	strtolower($ret) :
	$ret;
}

echo Iniciais('Evandro Franco de Oliveira');

 

O segundo parâmetro converte o resultado em minúsculos.

 

eu fiz uma mudança no seu codigo

Pq se o nome vir todo em maiusculo , vai cagar..

 

<?php

function Iniciais($nome,$minusculas = true){
        $nome = ucWords(strtolower($nome)); #ESSA LINHA
        $nome = ereg_replace("Da|De|Di|Do|Du","",$nome); # ESSA Tambem
        preg_match_all('/\s?([A-Z])/',$nome,$matches);
        $ret = implode('',$matches[1]);
        return $minusculas?
                strtolower($ret) :
                $ret;
}

echo Iniciais('EVANDRO FRANCO DE OLIVEIRA');

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Show de bola. Usei a ideia do Evandro e do Borsatti e funfou. Muito grato amigos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

versão 2.0

 

function Iniciais($nome){
$partes = explode(" ",$nome);
$ret = '';
foreach($partes as $parte) if(strlen($parte) > 3) $ret .= substr($parte,0,1);
return $ret;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

versão 2.0

 

function Iniciais($nome){
$partes = explode(" ",$nome);
$ret = '';
foreach($partes as $parte) if(strlen($parte) > 3) $ret .= substr($parte,0,1);
return $ret;
}

 

Eu ainda acho que a que a gente fez primeiro é melhor, pois usar foreach ocupa mais memoria.

Ai fica por você!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu ainda acho que a que a gente fez primeiro é melhor, pois usar foreach ocupa mais memoria.

Ai fica por você!

 

compensada com a remoção de REGEX, tanto em PEARL quanto POSIX que foram até deprecadas ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Eu ainda acho que a que a gente fez primeiro é melhor, pois usar foreach ocupa mais memoria.

Ai fica por você!

 

compensada com a remoção de REGEX, tanto em PEARL quanto POSIX que foram até deprecadas ;)

 

Se você diz.. beleza :)!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.