"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como verificar com eficiência uma string em um arquivo com PHP?

Como verificar com eficiência uma string em um arquivo com PHP?

Publicado em 2024-11-08
Navegar:537

How to Efficiently Check for a String in a File with PHP?

Como verificar se um arquivo contém uma string em PHP

Para determinar se uma string específica está presente em um arquivo, vamos explorar um solução e uma alternativa mais eficiente.

Código Original:

O código fornecido tenta verificar a presença de uma string em um arquivo, denotado pela variável $id, lendo o arquivo linha por linha. No entanto, a condição (strpos($buffer, $id) === false) no loop while está verificando incorretamente a ausência da string, levando à negação lógica do resultado desejado.

Solução melhorada:

Para corrigir a situação, podemos simplificar o código usando a função file_get_contents(), que lê o arquivo inteiro em uma string. Então, a função strpos() pode ser usada para verificar a presença da string $id dentro desta string:

if( strpos(file_get_contents("./uuids.txt"),$_GET['id']) !== false) {
    // do stuff
}

Ao usar essa abordagem, evitamos a iteração do arquivo linha por linha, o que pode economizar tempo e memória, especialmente para arquivos grandes.

Método alternativo (para Extremamente Arquivos grandes):

Para arquivos excessivamente grandes, depender de operações de arquivo para procurar uma string pode representar desafios de desempenho. Como alternativa, podemos utilizar o comando grep:

if( exec('grep '.escapeshellarg($_GET['id']).' ./uuids.txt')) {
    // do stuff
}

Essa abordagem usa o utilitário grep do sistema para encontrar a string no arquivo, reduzindo a carga de trabalho do próprio script PHP e, ao mesmo tempo, fornecendo eficiência comparável.

Declaração de lançamento Este artigo foi reimpresso em: 1729665916 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3