Ir para conteúdo
Fórum Script Brasil
  • 0

Problema na contagem de caracteres especiais


RodrigoGomes

Pergunta

Ajuda aos universitários.. :D

Eu encontrei um erro, que não faço idéia de como resolver, creio que é um desafio tanto pra min quando para todos..

o Script é de pegar o nick-name do último cadastrado, bom esse script ao atingir 17 letras ele é corta as letras que restaram e adicionado no final delas ... (três pontos), beleza até ai tudo bem..

Mas como nada é perfeito, geralmente um nick-name tem caracteres especiais, e quando tem caracteres especiais os nicks ficam meio grandes no código de fonte, ex: "& # 8 9 7 6 ;"

esse ai é um caracter especial que na página ele apareçe como um caractere e no código de fonte ele apareçe desta forma ai, porem sem espaço é claro.. e só esse caracter leva 7 letras, então um nick com caracteres especiais fica com apenas duas letras na máximo.. e eu não posso aumentar esse 17 se não poderia estragar a página..

Complicado..! :huh:

ai esta o código:

$sql = mysql_query("SELECT nick FROM users ORDER BY id DESC");
$ult = mysql_result($sql, 0);
echo"Último Cadastrado: ";
$cont = (strlen($ult));
echo"<a href=\"profile.php?id=";
$encrypted = addslashes($ult);
$encrypted = bin2hex($encrypted); 
echo"$encrypted\">";
if ($cont > 17){
echo substr("$ult", 0, 17);
echo"...";
} else {
echo"$ult";
}
echo"<br></a>";

Obs: bin2hex é uma encriptografia que eu usei para indentificar os usuário sem ser que fique o nick dele na barra de endereço.. e por causa dos caracteres especiais tmb..

Agradeço mesmo aqueles que conseguirem ajudar.. :)

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Não acho que tenha uma solução universal, pois você não controla os inputs dos usuários... a única coisa que dá pra saber é que todo caractere especial começa com & e termina com ;, por outro lado ele não tem um número definido de caracteres... o que eu faria se fosse você, gravaria em algum lugar todos os códigos referentes aos caracteres especiais, e na hora de contar criaria um meio dos caracteres especiais serem separados do resto do nome (tudo que tivesse começo com & e término com ; seria contado como caractere especial), no caso poderia usar o str_replace para substituir os caracteres especiais por algo como uma letra qualquer, já que é apenas pra contagem... assim o resultado seria o real.

-----

Título editado, segundo as regras ele deve ser coerente com a dúvida.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...