Pular para o conteúdo

PHP - Erro separação de caracteres de uma variável

Responder tópico
  • Denunciar
  • Indicar
01 02 03

1. PHP - Erro separação de caracteres de uma variável

Enviado em 01/07/2015 - 15:21h

Boa tarde, estou com um problemas a dias e não consigo resolver.
Tenho uma página PHP que estou quebrando o conteúdo de uma variável em caracteres separados, funciona perfeitamente até que um dos caracteres esteja com acento ou com o "ç".
Já tentei de diversas formas mas o erro persiste.

Segue meu código e o resultado:
$var="AaBbCcÇçEeÃã";
echo $var;
for( $i=0; $i < 12 ; $i++ ){
print " $var[$i] \n ";
}
Resultado: AaBbCcÇçEeÃã A a B b C c &#65533; &#65533; &#65533; &#65533; E e

Responder tópico

2. Re: PHP - Erro separação de caracteres de uma variável

Enviado em 01/07/2015 - 16:37h

gieri,
header('content-type: text/html; charset=utf-8');
$var[]="AaBbCcÇçEeÃã";
for( $i=0; $i < 12 ; $i++ ){
print " $var[$i] \n ";
}

3. Re: PHP - Erro separação de caracteres de uma variável

Enviado em 02/07/2015 - 01:35h

Adicione a função html_entity_decode() à linha do print:

print html_entity_decode(" $var[$i] \n "); 

4. Re: PHP - Erro separação de caracteres de uma variável

Enviado em 02/07/2015 - 07:32h

cassio88 escreveu:

gieri,
header('content-type: text/html; charset=utf-8');
$var[]="AaBbCcÇçEeÃã";
for( $i=0; $i < 12 ; $i++ ){
print " $var[$i] \n ";
}


Cassio dessa maneira também não funcionou...
Obrigado pela resposta...


5. Re: PHP - Erro separação de caracteres de uma variável

Enviado em 02/07/2015 - 07:40h

fabio escreveu:

Adicione a função html_entity_decode() à linha do print:

print html_entity_decode(" $var[$i] \n "); 


Obrigado pela resposta Fabio, também não funcionou.

Fazendo uns teste vi que a posição do array que recebe o valor com acento ou o "ç" não consigo compara-lo com o valor dele.
Ex: A posição var[8] é ç, ao fazer a comparação com o if (var[8] == "ç") é reconhecido como falso e preciso fazer essa comparação me retorne verdadeira.


6. Re: PHP - Erro separação de caracteres de uma variável

Enviado em 02/07/2015 - 08:37h

gieri,
falha nossa,
$var[]="AaBbCcÇçEeÃã";
só vai ter um elemento, por isso $var[7] não existe ...

quando comparar strings,use '===' ao invés de '=='

tenta agora:

header('content-type: text/html; charset=utf-8');
$var[]="A";
$var[]="a";
$var[]="B";
$var[]="b";
$var[]="C";
$var[]="c";
$var[]="Ç";
$var[]="ç";
$var[]="E";
$var[]="e";
$var[]="Ã";
$var[]="ã";
echo $var[7];
echo '<hr>';
if (strcasecmp( "ç" , $var[7] ) == 0 ) echo 'use ';

7. Re: PHP - Erro separação de caracteres de uma variável

Enviado em 02/07/2015 - 09:07h

cassio88 escreveu:

gieri,
falha nossa,
$var[]="AaBbCcÇçEeÃã";
só vai ter um elemento, por isso $var[7] não existe ...

quando comparar strings,use '===' ao invés de '=='

tenta agora:

header('content-type: text/html; charset=utf-8');
$var[]="A";
$var[]="a";
$var[]="B";
$var[]="b";
$var[]="C";
$var[]="c";
$var[]="Ç";
$var[]="ç";
$var[]="E";
$var[]="e";
$var[]="Ã";
$var[]="ã";
echo $var[7];
echo '<hr>';
if (strcasecmp( "ç" , $var[7] ) == 0 ) echo 'use ';



Cassio obrigado novamente pela resposta. Testei aqui e não funcionou.
No caso como você demonstrou tem uma posição do vetor para cada letra, no entanto eu tenho a palavra dentro de uma string e quando eu tento quebra-la para um vetor como no seu exemplo as letras normais funcionam só que com a letras que tem acento e o "ç" da erro.
Estou com o problema antes de enviar para o lado do cliente logo não consigo nem fazer a comparação utilizado "===" da o mesmo erro, passa como falso.

8. Re: PHP - Erro separação de caracteres de uma variável

Enviado em 02/07/2015 - 09:13h

vamos facilitar,
passa a parte do código que interessa (tire coisas tipo conexão, senha, etc)
o código que te passei funcionou no meu micro, o que já é um bom indício...

9. Re: PHP - Erro separação de caracteres de uma variável

Enviado em 02/07/2015 - 09:18h

cassio88 escreveu:

vamos facilitar,
passa a parte do código que interessa (tire coisas tipo conexão, senha, etc)
o código que te passei funcionou no meu micro, o que já é um bom indício...



$palavras_temp=(Vem da base de dados)

# Contar quantas letras tem em uma variável
$x=strlen("$palavras_temp");

# Faz a repetição com a troca das letras por imagens que representa a letra
for ($t=0;$t<$x;$t++){echo '<img src="arquivos/letras/'.$palavras_temp[$t].'.gif" width="40" height="40">';}


Esta funcionando corretamente, mas ao se deparar com uma letra com acento ou com o "ç" ele não exibe a imagem correta.


10. Re: PHP - Erro separação de caracteres de uma variável

Enviado em 02/07/2015 - 09:25h


Segue um exemplo funcional:
$palavra = "teste";
$tamPalavra = strlen($palavra);
for ($i = 0; $i < $tamPalavra; $i++) {
echo 'Caracter ' . $i . ' = ' . $palavra[$i] . '<br />';
}


Com o mesmo código com os caracteres com acento da erro:
$palavra = "paixão";
$tamPalavra = strlen($palavra);
for ($i = 0; $i < $tamPalavra; $i++) {
echo 'Caracter ' . $i . ' = ' . $palavra[$i] . '<br />';
}

11. Re: PHP - Erro separação de caracteres de uma variável

Enviado em 02/07/2015 - 09:50h

Experimenta abrir o arquivo com o Notepad++ (ou outro editor, Notepadqq) e converte para UTF-8 sem BOM e veja se o erro persiste.

Ou coloca utf8_decode antes da variável:
utf8_decode($var)

12. Re: PHP - Erro separação de caracteres de uma variável

Enviado em 02/07/2015 - 09:53h

Buckminster escreveu:

Experimenta abrir o arquivo com o Notepad++ (ou outro editor, Notepadqq) e converte para UTF-8 sem BOM e veja se o erro persiste.



Buckminster já esta em UTF-8, posso atribuir o valor diretamente na variável que o erro persiste. Conforme os exemplos que mostrei acima.

01 02 03

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder