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

problema com função com array


Jeanfson Dutra

Pergunta

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.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

segue a saida: que aparece

 

Captdfgfdurar.PNG

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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]);
        }
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
      152.1k
    • Posts
      651.8k
×
×
  • Criar Novo...