Jump to content
Fórum Script Brasil
  • 0

Problema na contagem de caracteres especiais


RodrigoGomes
 Share

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...