Jump to content


Photo

Ajuda Com Strings!


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

#1 leods92

leods92

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 28/04/2006, 12:36

Aew gente olhem o meu código!

$nick = ($_POST['nick']);
$nickArray = explode(' ', $nick);
for($i=0;$i<count($nickArray);$i++)
	if(strlen($nickArray[$i]) > 2)
		$nickArray[$i] = ucfirst($nickArray[$i]);
$nick = implode(' ', $nickArray);
	$charname = $nick;

É o seguinte, ele foi criado para gerar nomes que quando o usuario envia um nome com letras minusculas o php corrige mas dai eu queria alguns critérios... Até agora eu defini o >2 porque dai todas as pequenas palavras do tipo:
a, do, de, of e etc ficam minusculas...

Dai eu queria que qualquer letra da primeira palavra mesmo que ela seje menor que 3 caracteres tenha letra maiuscula e eu queria que mesmo que maior que 2 caracteres algumas palvras como por exemplo "FOR" ficasse minusculas ("for") entendem?
essas e outras mas essa é a que veio a cabeça...

valeu ai espero que me entendam.. :D

Abraços

Edição feita por: leods92, 28/04/2006, 12:38.


#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 28/04/2006, 12:59

Opa, tenta assim:
<?
$val = array("for","the");

$nick = ($_POST['nick']);
$nickArray = explode(' ', $nick);
for($i=0;$i<count($nickArray);$i++){
	if( in_array($nickArray[$i], $val) && $i != 0 )
		$nickArray[$i] = strtolower($nickArray[$i]);
	else if(strlen($nickArray[$i]) > 2 || $i == 0 )
		$nickArray[$i] = ucfirst($nickArray[$i]);
}
$nick = implode(' ', $nickArray);
	$charname = $nick;

echo $charname;
?>
Ai tem o array $val que contém as exeções.

Flws...
;)Até mais

Edição feita por: Frenesi, 28/04/2006, 13:02.

Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 thescente

thescente

    Eron Venter

  • Usuários
  • 599 posts
  • Sexo:Não informado
  • Localidade:Novo Hamburgo/RS

Posted 28/04/2006, 21:39

Hmmm curti esse script aproveitei ele pra adaptar uma função porem ele só me retorna palavras em minusculas como "da", "de"...

Tipo eu vou receber minha variavel ou em letras minusculas ou maiusculas ouu tudo misturado, porem na função adaptei um strtolower para converter e tratar a string mas ele não me retorna o resultado esperado que seria: Arqueovaldo da Silva

<?php


function charFORMAT($var){
$varArray = explode(' ', strtolower(trim($var)));
for($i=0;$i<count($varArray);$i++){
if(strlen($varArray[$i]) > 3){
$varArray[$i] = ucfirst($nomeArray[$i]);
}
}
$var = implode(' ', $varArray);
return $var;
}

$nome = "ARQUEOVALDO DA SILVA";
echo charFORMAT($nome);


?>



#4 leods92

leods92

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 28/04/2006, 21:40

Muito obrigado pela resposta rápida,
funcional e objetiva ;)
fucionou perfeitamente xD
O Brasil precisa de mais gente assim xD
valeu mesmo Frenesi...
Abraço

#5 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 28/04/2006, 21:46

Pelo que entendi:

<?php

	$sNome = 'carlos moura da costa de abreu lima e silva';
	
	print preg_replace('/(\b[[:alpha:]]{1,2}\b)/e', "strtolower('\\1')", ucwords($sNome));
	
?>

Saída:

Carlos Moura da Costa de Abreu Lima e Silva


Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29




1 user(s) are reading this topic

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

IPB Skin By Virteq