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>
<?}?>