Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] comparar codigo

Estas en el tema de comparar codigo en el foro de PHP en Foros del Web. Hola amigos , veran tengo un problema resulta que estoy haciendo un escaner a un directorio el cual me guarda los resultados en una variable ...
  #1 (permalink)  
Antiguo 19/07/2012, 14:06
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
comparar codigo

Hola amigos , veran tengo un problema resulta que estoy haciendo un escaner a un directorio el cual me guarda los resultados en una variable despues copio todos los archivos en un directorio temporal y ahora necesito comparar si los codigos son iguales y no han sido modificados , pues... no doy con ello , se puede comparar los tamaños para ver si fueron modificados o incluso la fecha de modificacion del archivo ¿creo? si no es asi diganmelo. que mas comparaciones podria hacer si esque no se puede comparar el codigo que es la pregunta en cuestion, de no poderse necesito otros caminos que seguir
  #2 (permalink)  
Antiguo 19/07/2012, 14:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: comparar codigo

Podrías hacer una suma md5 o sha1 y verificar si los hashes son iguales, si no lo son, es que fueron modificados.

Saludos.
  #3 (permalink)  
Antiguo 19/07/2012, 14:12
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: comparar codigo

pero no es posible comparar el codigo ?? por ejemplo

$variable1 = pagina1 codigo (no se como sacarlo)
$variable2 = pagina2 codigo (no se como sacarlo)

y las comparamos y deberian ser exactamente igual

gatorv comprendo lo que dices pero ¿que valores sumo?no entiendo como me dices , de donde saco los hashes


con show_source(__FILE__) imprimo el codigo en la pantalla pero no puedo guardar el valor en una variable , ayundenme plis ejjee

Última edición por webankenovi; 19/07/2012 a las 15:05 Razón: show_source()
  #4 (permalink)  
Antiguo 19/07/2012, 15:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: comparar codigo

Por eso te dije que usaras md5 o sha1, ambos son algoritmos de hasheo, lo que haces es tomas el contenido del archivo1, generas su hash md5, tomas el archivo dos igual, si ambos hashes coinciden son iguales, pues es el mismo archivo.

Usando php puedes usar md5_file que calcula precisamente el hash md5 de un archivo.

Si lo que quieres es comparar línea a línea, pues ahí es más complicado ya que tendrías que leer cada archivo, línea por línea y verificar que no sean iguales, hay herramientas más optimizadas que hacen eso (como WinMerge) un diff de dos directorios o archivos.

Saludos.
  #5 (permalink)  
Antiguo 19/07/2012, 15:49
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: comparar codigo

1- me has dicho que tome el contenido del archivo1 y genere su hash , vale , pero como tomo el contenido eso es lo que no doy con ello

2 - he usado la opcion md5_file tal que asi

$p1 = md5_file('http://localhost/index.php');
$p2 = md5_file('http://localhost/temp/index.php');

if($p1 == $p2){

echo'son iguales';

}else{

echo'no son iguales';

}

bueno pues son practicamente igual y a veces coinciden y a veces no ¿por que? , con hash_file() me pasa lo mismo

despues he probado readfile() y me dice si son iguales pero si añado una linea mas me sigue diciendo que son iguales

me puedes decir como tu tomarias el contenido del archivo , esque no doy con ello o lo estoy haciendo mal o algo

Última edición por webankenovi; 19/07/2012 a las 16:02
  #6 (permalink)  
Antiguo 19/07/2012, 16:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: comparar codigo

md5_file funciona a nivel local, no funciona con urls, tienes que usar el path local al archivo y ahí te va a generar el hash del archivo.

Saludos.
  #7 (permalink)  
Antiguo 19/07/2012, 16:11
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: comparar codigo

perfecto gatorv eres un crack ya decia yo que algo pasaba

lo probe asi y funciona perfecto por si a alguien le vale
Código PHP:
Ver original
  1. $p1 = md5_file(dirname(__FILE__).DIRECTORY_SEPARATOR.'logout.php');
  2. $p2 = md5_file(dirname(__FILE__).DIRECTORY_SEPARATOR.'temp'.DIRECTORY_SEPARATOR.'logout.php');
  3.  
  4. if($p1 == $p2){
  5.  
  6. echo'son iguales';
  7.  
  8. }else{
  9.  
  10. echo'no son iguales';
  11.  
  12. }

al minimo cambio no coinciden !! perfecto !!
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




La zona horaria es GMT -6. Ahora son las 06:56.