Foros del Web » Programando para Internet » PHP »

Busqueda en codigo para encontrar cadena especifica

Estas en el tema de Busqueda en codigo para encontrar cadena especifica en el foro de PHP en Foros del Web. Les traigo este código, que uso para hacer una busqueda de una cadena, en todos los archivos de php, css o js, en todos los ...
  #1 (permalink)  
Antiguo 06/07/2012, 09:59
 
Fecha de Ingreso: septiembre-2011
Ubicación: Yucatán
Mensajes: 42
Antigüedad: 12 años, 7 meses
Puntos: 8
Busqueda en codigo para encontrar cadena especifica

Les traigo este código, que uso para hacer una busqueda de una cadena, en todos los archivos de php, css o js, en todos los subdirectorios del directorio proporcionado.

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('<','&lt;',$line);
                                    
$line=str_replace('>','&gt;',$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>
<?}?>
Acepto críticas y sugerencias para mejorarlo.
  #2 (permalink)  
Antiguo 08/07/2012, 04:37
Avatar de dryant  
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 283
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Busqueda en codigo para encontrar cadena especifica

Yo con mis pocos conocimientos que tengo solo puedo decir: ¡gracias!

;)

De todas formas en su dia busque un tema similar y en la seccion de aportes habia un script que era muchas menos lineas, por si te interesa mirarlo.

Un saludo!
__________________
Tecnología y tutoriales
  #3 (permalink)  
Antiguo 30/07/2013, 12:07
 
Fecha de Ingreso: julio-2013
Mensajes: 1
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Busqueda en codigo para encontrar cadena especifica

Hola disculpa, pero si quiero solo buscar en un archivo en especifico y no en todo el directorio que tendria q modificar? perdon pero soy novato =S Gracias!

Etiquetas: encontrar, especifica, busquedas, variables, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 10:32.