fbpx
Top

Script PHP para buscar palavras dentro de arquivos

Script PHP para buscar palavras dentro de arquivos

Se você é webdesigner, programador, ou até um curioso da área, já se deparou com uma dificuldade de encontrar arquivos no computador ou servidor, não somente pelo seu nome, mas sim também, pelo conteúdo do arquivo.

Apresentamos este script PHP para encontrar arquivos que contenham palavras chave específicas.

Uma aplicação simples do código abaixo, foi uma mão na roda para encontrar os arquivos que continha palavras, que os plugins do wordpress para tradução, não conseguir traduzir. Ou para customizar alguma coisa em um plugin ou tema.

Esta função recursiva “buscaArquivos” percorre todas as pastas e subpastas procurando em arquivos com as extensões informadas, que contenham determinada palavra chave.

Ela retornará uma tabela com o caminho e link para o arquivo e a quantidade de vezes que este termo se repete no arquivo.

Lembrando… Este script nunca deve ser deixado no seu servidor de forma aberta. Pois expõe seus arquivos e pastas. Ao encontrar o que precisa, retire-o do site

<?php

// Função recursiva pra percorrer todas as pastas do diretório
function buscarArquivos($diretorio, $pasta, &$i, $formatos, $termo_busca){
    
    $raiz = $pasta; 
    
    while($arquivo = $diretorio->read()){
    
        if (is_dir($raiz.$arquivo) && $arquivo !== '.' && $arquivo !== '..'){
    
            $newdir = $raiz.$arquivo;
            $diretorio2 = dir($newdir);
            buscarArquivos($diretorio2, $raiz.$arquivo.'/', $i, $formatos, $termo_busca);
    
        }
        else if (is_file($raiz.$arquivo)){
            $i++;
            $ext = pathinfo($raiz.$arquivo, PATHINFO_EXTENSION);
            if (in_array($ext, $formatos)){
                $arq = file_get_contents($raiz.$arquivo);
                //$pos = strpos($arq, $termo_busca);
                $qtde = substr_count($arq, $termo_busca);
                if ($qtde){
                    echo '<tr>
                                <td>'.$i.'</td>
                                <td><a href="'.$raiz.$arquivo.'" target="_blank">'.$raiz.$arquivo.'</a></td>
                                <td>'.$qtde.'</td>
                            </tr>';
                }
            }
        }
    }
    $diretorio->close();
}
    


// Aqui adicionamos a pasta que queremos fazer a leitura
$path = "../wp-content/";
$diretorio = dir($path);
// Contador de Arquivos avaliados
$i = 0;
// Termo de Busca exato
$termo_busca = "comment";
// Informe os formatos dos arquivos que serão analisados
$formatos = array("php");


// Tabela para exibição de arquivos encontrados
echo '<table width="100%" border="1" cellspacing="0" cellspading="0">
        <tr>
            <th>Arquivo</th>
            <th>Caminho</th>
            <th>Ocorrências</th>
        </tr>';

buscarArquivos($diretorio, $path, $i, $formatos, $termo_busca);

echo '<tr>
            <td colspan="3">
                '.$i.' arquivos avaliados
            </td>
        </tr>
    </table>';

Com certeza este script pode ser melhorado. Se quiser sugestões de outros scripts, pode colocar aí nos comentários que adicionaremos.

Se quiser você também pode baixar o arquivo com o código fonte do script para buscar arquivos por palavras chave no conteúdo clicando no link abaixo.

No Comments

Publique um comentário.

dois + 15 =

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.