Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
Como está a estrutura do banco? O nome e o sobrenome estão numa mesma coluna ou estão separados?
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.
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.
é só trocar o abcdef pela sua variavel
>
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');
?>Show de bola. Usei a ideia do Evandro e do Borsatti e funfou. Muito grato amigos.
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;
}>
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ê!
>
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 ;)
>
>
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 :)!!!
Tem um erro nesse programa versão 2!
Meu nome é Pablo Rafaelo Si
Ou seja, meu sobre nome é "Si", uma string de tamanho 2. Nesse código, as iniciais do meu nome ficariam: PR, mas o correto seria PRS.
O PHP tem uma função chamada substr
Com ela você pega uma parte de uma string
No php.net tem a documentação sobre ela acho que conseguindo entender com ela funciona
você irá resolver seu problema.