Jump to content


Photo

Fnome();


  • Faça o login para participar
4 replies to this topic

#1 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 19/01/2006, 07:17

Título: FNome()
Descrição: Este função tem o OBJETIVO de abreviar nome.
ex: NILSON ANTONIO FERREIRA , irá ficar: NILSON A. FERREIRA.

---------------------------------------------------------

Sintaxe: FNome( STR FRASE )
Retorno: String
Descrição: Para usar está função, basta chamá-la com o link desejado como parâmetro.
Bibliotecas: Nenhuma
Limitações: PHP 4.0+

Função:
function FNome($Nome) {
 $Sep = explode(" ",$Nome);
 for ($X = 1; $X <= count($Sep)-2; $X++) {
  $NNome .= (count($Sep)>2)?strlen($Sep[$X]) > 3?$Sep[$X][0].'. ':'':$Sep[$X];
 }
 return ucwords($Sep[0].' '.$NNome.' '.$Sep[$X]);
}

Exemplo de uso:
<?
function FNome($Nome) {
 $Sep = explode(" ",$Nome);
 for ($X = 1; $X <= count($Sep)-2; $X++) {
  $NNome .= (count($Sep)>2)?strlen($Sep[$X]) > 3?$Sep[$X][0].'. ':'':$Sep[$X];
 }
 return ucwords($Sep[0].' '.$NNome.' '.$Sep[$X]);
}
echo FNome('nilson antonio ferreira'); // Irá retornar: Nilson A. Ferreira
?>

OBS: e uma função simples porém quem quiser deixar um pouco + aperfeiçoada, ta aê!
------------------------------------------------------------------------------------------------------------------

Editando
Agradeço o BEOC por me avisar de um "errinho" na função assim eu a consertei ^^'
espero que fique agora 99% pq 100% ficara na mãos de vocês para melhoramento

Edição feita por: Goku Jr, 19/01/2006, 15:43.

-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#2 BEOC

BEOC

    Novato no fórum

  • Aguardando Liberação
  • 7 posts
  • Sexo:Masculino
  • Localidade:Piracaia

Posted 19/01/2006, 13:45

legal a função, mais os nomes com de,dos, etc.. ficam abreviados tbm....


se eu colocar "nilson antonio dos santos ferreira" (sem aspas) ele retorna "Nilson A. D. S. Ferreira" (sem aspas)
uma ajudinha no código:
<?php
 function FNome($Nome) {
  $sep = explode(" ",$Nome);
  $array = array('de','dos');
 for ($x = 1; $x<= count($sep)-2; $x++) {
   if(in_array($sep[$x],$array)) {
    $NNome .= '';
   }else{
    $NNome .= $sep[$x][0].'. ';
   }
 }
 return ucwords($sep[0].' '.$NNome.$sep[$x]);
}

echo FNome('nilson antonio dos santos ferreira'); // irá retornar Nilson A. S. Ferreira
?>


flw'ss

Edição feita por: BEOC, 19/01/2006, 13:56.

Perfil
-----------------------

Nome: Bruno Eduardo de Oliveira Constantino
Site: http://www.brunoeduardo.com.br
Email: bruno.constantino@gmail.com
MSN: agbrunoeduardo@hotmail.com
Skype: agencia.brunoeduardo

#3 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 19/01/2006, 15:20

Script atualizado...
Obrigado BEOC!

Edição feita por: Goku Jr, 19/01/2006, 15:52.

-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#4 Escoces

Escoces

    Fotógrafo

  • Usuários
  • 168 posts
  • Sexo:Masculino
  • Localidade:Algum lugar ^^
  • Interesses:Mulher, Fotografia, Web, Mulher, Carros, Mulher, etc...

Posted 06/02/2006, 01:10

so faltou o "da"..

ex: Joao da Silva

mas ta mto bom esse script.. valeu

Edição feita por: Escoces, 06/02/2006, 01:10.


#5 Serafin

Serafin

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Masculino
  • Localidade:Petrolina-PE
  • Interesses:Tenho Interesses em PHP, JAVA, C++, JAVASCRIPTS, MYQL, ETC

Posted 12/10/2007, 20:06

Olá Pessoal, dando uma ajudinha......considerei o "da".....sem aspas...

<?php
function FNome($Nome) {
$sep = explode(" ",$Nome);
$array = array('de','dos','da');
for ($x = 1; $x<= count($sep)-2; $x++) {
if(in_array($sep[$x],$array)) {
$NNome .= '';
}else{
$NNome .= $sep[$x][0].'. ';
}
}
return ucwords($sep[0].' '.$NNome.$sep[$x]);
}

echo FNome('natanael da silva moraes de amorim dos santos'); // irá retornar Natanael S. M. A. Santos
?>

Valeu!......
"!@#$%¨&*()_+NCMR+_)(*&¨%$#@!"




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq