Los resultados nos muestran la ruta, nombre del archivo, numero de linea y el codigo en dicha linea donde se encontró la coincidencia.
Ruta: midirectorio/
Cadena: $variable
Archivos:
PHP x
CSS
JS
ENVIAR
La ruta debe terminar en /
Código PHP:
   <?php
if (!empty($_POST['submit'])){
    function listar_directorios_ruta($ruta,$cade,$tipos){
        // abrir un directorio y listarlo recursivo
        if (is_dir($ruta)) {
            if ($dh = opendir($ruta)) {
                while (($file = readdir($dh)) !== false) {
                    //esta línea la utilizaríamos si queremos listar todo lo que hay en el directorio
                    //mostraría tanto archivos como directorios
                    if ($file!="." && $file!=".."){
                        if (is_dir($ruta . $file)){
                            //solo si el archivo es un directorio, distinto que "." y ".."           
                            listar_directorios_ruta($ruta . $file . "/",$cade,$tipos);
                        }else{
                            $files=fopen($ruta.$file,'r');
                            foreach ($tipos as $tipo){
                                if  (strpos($file,$tipo)>0){
                                    $muestra=true;
                                    break;
                                }else $muestra=false;
                            }
                            if ($muestra){
                                $i=1;
                                while (!feof($files)){
                                    $line=fgets($files);
                                    $line=str_replace('<','<',$line);
                                    $line=str_replace('>','>',$line);
                                    if (strpos($line,$cade)>0) echo "$ruta$file -$i - $line<br />";
                                    $i++;
                                }
                            }
                        }
                    }
                }
                closedir($dh);
            }
        }else echo "<br>No es ruta valida";
    } 
    listar_directorios_ruta($_POST['ruta'],$_POST['cade'],$_POST['tipo']);
}else{?>
<form method="POST" action="busca.php">
    Ruta: <input type="text" name="ruta"/><br />
    Cadena: <input type="text" name="cade"/><br />
    Archivos: <br />
    PHP<input type="checkbox" name="tipo[]" value="php"/>
    JS<input type="checkbox" name="tipo[]" value="js"/>
    CSS<input type="checkbox" name="tipo[]" value="css"/><br />
    <input type="submit" name="submit" value="enviar"/>
</form>
<?}?>    
 

Este tema le ha gustado a 2 personas