Jeanfson Dutra Postado Outubro 17, 2021 Denunciar Share Postado Outubro 17, 2021 Olá a todos. Estou tendo um problema em uma condicional com um array de strings capturados diretamente de um arquivo de texto. Segue o código. static function leArray(){ $array = file("./lib/palavras_chave.txt"); foreach($array as $linha){ echo $linha . "<br />"; } if($array[2] == "innovations"){ echo "******************** <br />"; echo "array[2] contem => innovations"; }else{ echo "******************** <br /> Palavra não encontrada! => $array[2] <br />"; } } ele imprime os dados na tela porém a condicional sempre entra no else. Quem puder me dizer o porque eu agradeço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lowys Postado Outubro 17, 2021 Denunciar Share Postado Outubro 17, 2021 Olá! A condicinal sempre vai entrar no else se $array[2] for diferente de 'innovations' Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jeanfson Dutra Postado Outubro 17, 2021 Autor Denunciar Share Postado Outubro 17, 2021 (editado) Ai é que está. O $array[2]. é exatamente 'innovations' tanto que imprimi no else ele la no final pra ter certeza. Ou seja, a condição do if está correta mas sempre entra no else. Editado Outubro 17, 2021 por Jeanfson Dutra Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 wash Postado Outubro 17, 2021 Denunciar Share Postado Outubro 17, 2021 Olá! Pode acontecer de, no final da linha ser carregado tb o metacaracter da quebra de linha. para evitar isso use as seguintes flags com a função file: file($filePath, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); onde $filePath é o caminho para o arquivo que o sr. pretente q seja lido. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jeanfson Dutra Postado Outubro 17, 2021 Autor Denunciar Share Postado Outubro 17, 2021 segue a saida: que aparece file($filePath, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); vo tentar Estava capturando o caractere da quebra mesmo. Deu certo com esse ultimo parametro FILE_IGNORE_NEW_LINES. file($filePath, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); Muito obrigado amigo. Ajudou demais. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 wash Postado Outubro 17, 2021 Denunciar Share Postado Outubro 17, 2021 Certifique-se de que não haja espaços em branco antes e depois da palavra, no arquivo lido Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jeanfson Dutra Postado Outubro 18, 2021 Autor Denunciar Share Postado Outubro 18, 2021 sim verifiquei conforme você indicou e não há espaços em branco antes nem depois, agora estou tentando resolver o problema dos caracteres especiais que não são reconhecidos como está na imagem que postei nas palavras 'inovação' e 'inovações'. o cedilha e o til não estão sendo reconhecidos e preciso principalmente dessas palavras. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jeanfson Dutra Postado Outubro 18, 2021 Autor Denunciar Share Postado Outubro 18, 2021 resolvi da seguinte maneira, fiz um laço codificando cada string para utf-8 e colocando novamente no array, segue o código: $array = file("./lib/palavras_chave.txt", FILE_IGNORE_NEW_LINES); for($i=0; $i<count($array); $i++){ $array[$i] = utf8_encode($array[$i]); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Jeanfson Dutra
Olá a todos. Estou tendo um problema em uma condicional com um array de strings capturados diretamente de um arquivo de texto. Segue o código.
ele imprime os dados na tela porém a condicional sempre entra no else. Quem puder me dizer o porque eu agradeço.
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
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.