Foros del Web » Programando para Internet » PHP »

Identificar archivos de texto

Estas en el tema de Identificar archivos de texto en el foro de PHP en Foros del Web. Hola a todos, He lanzado un pequeño servicio para que la gente guarde sus archivos de configuración (sources.list, htaccess, xorg.conf, ....). El sistema está diseñado ...
  #1 (permalink)  
Antiguo 17/07/2007, 16:42
 
Fecha de Ingreso: enero-2004
Mensajes: 95
Antigüedad: 20 años, 10 meses
Puntos: 1
Pregunta Identificar archivos de texto

Hola a todos,

He lanzado un pequeño servicio para que la gente guarde sus archivos de configuración (sources.list, htaccess, xorg.conf, ....). El sistema está diseñado para archivos de linux (archivos de texto), ya que guarda el contenido en la base de datos y permite editarlos online, el problema es que hay gente que está subiendo archivos .dat y similares que son binarios.

¿Existe alguna función para conocer si el contenido de un archivo es texto?

Gracias.
__________________
Guarda tus configuration files
  #2 (permalink)  
Antiguo 17/07/2007, 20:44
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 19 años, 5 meses
Puntos: 2
Re: Identificar archivos de texto

La verdad no conozco alguna función de PHP para ello, pero si el servidor es GNU/Linux podrías ejecutar lo siguiente:
Código:
echo exec("file ARCHIVO", $salida);
El comando file de la shell te dice que tipo de archivo es, supongo que si suben un archivo binario cuando ejecutes el comando file te debería decir si es o no un binario o de que tipo es.

Saludos.

Última edición por DarioDario; 17/07/2007 a las 22:15 Razón: mal cierre de una etiqueta
  #3 (permalink)  
Antiguo 17/07/2007, 21:01
 
Fecha de Ingreso: enero-2004
Mensajes: 95
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Identificar archivos de texto

Pues he estado haciendo algunas pruebas y parece que me viene perfecto, tendré que hacer pruebas con muchos archivos pero parece que siempre que es de texto en la cadena de información que devuelve aparece la palabra "text".

Muchisimas gracias.
__________________
Guarda tus configuration files
  #4 (permalink)  
Antiguo 17/07/2007, 22:15
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 19 años, 5 meses
Puntos: 2
Re: Identificar archivos de texto

Cita:
Iniciado por bictorman Ver Mensaje
Pues he estado haciendo algunas pruebas y parece que me viene perfecto, tendré que hacer pruebas con muchos archivos pero parece que siempre que es de texto en la cadena de información que devuelve aparece la palabra "text".

Muchisimas gracias.
Ten ojo y trata de hacer varias prueba no siempre te lo marca de esa manera, recién por puro curioso probé con un script de PHP y este me lo reconoció como "PHP script text".

Saludos.

PD: Cuando hagas tus pruebas se te agradecería que vengas y postees los resultados... el archivo X es reconocido como Y... etc.
  #5 (permalink)  
Antiguo 17/07/2007, 22:44
 
Fecha de Ingreso: enero-2004
Mensajes: 95
Antigüedad: 20 años, 10 meses
Puntos: 1
Re: Identificar archivos de texto

Cita:
Iniciado por DarioDario Ver Mensaje
Ten ojo y trata de hacer varias prueba no siempre te lo marca de esa manera, recién por puro curioso probé con un script de PHP y este me lo reconoció como "PHP script text".

Saludos.

PD: Cuando hagas tus pruebas se te agradecería que vengas y postees los resultados... el archivo X es reconocido como Y... etc.
Precisamente: PHP script text

Siempre que es de texto aparece la palabra "text" en la descripcion.
Ya he aplicado del filtro, lo que he hecho es lo siguiente:

Código PHP:
exec("file ".$_FILES['file']['tmp_name'], $type);
if(
ereg("text",serialize($type))) {
    
$file->content file_get_contents($_FILES['file']['tmp_name']);
}
else {
    
unlink($_FILES['file']['tmp_name']);
    
//Pongo un mensaje de error

Todo funciona perfectamente. He hecho muchas pruebas aunque no he guardado los resultados.
Te puedo decir por ejemplo que un archivo de word lo identifica como tal, y no aparece text, lo mismo con un PDF por ejemplo. Sin embargo archivos XML si los identifica como tales y los cataloga como text. He probado de todo .php .ini .js .conf .list archivos empezando por "." (.htaccess). I siempre ha dado el resultado con "text" cuando correspondía.

De nuevo muchas gracias.
__________________
Guarda tus configuration files
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 13:00.