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

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

Carpegieri Torezani
gieri

(usa Linux Mint)

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


  


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

CASSIO FERRAZ
cassio88

(usa Ubuntu)

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

Fábio Berbert de Paula
fabio

(usa Debian)

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

Carpegieri Torezani
gieri

(usa Linux Mint)

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

Carpegieri Torezani
gieri

(usa Linux Mint)

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

CASSIO FERRAZ
cassio88

(usa Ubuntu)

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

Carpegieri Torezani
gieri

(usa Linux Mint)

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

CASSIO FERRAZ
cassio88

(usa Ubuntu)

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

Carpegieri Torezani
gieri

(usa Linux Mint)

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

Carpegieri Torezani
gieri

(usa Linux Mint)

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

Buckminster
Buckminster

(usa Debian)

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

Carpegieri Torezani
gieri

(usa Linux Mint)

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



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts