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.
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