php - una - permisos linux 777
¿Hay alguna manera de detectar cambios en una carpeta usando php en windows y linux? (3)
Entonces, si está comprobando en comparación con la última vez que lo hizo, en lugar de simplemente actualizarlo tan pronto como cambie, podría hacer lo siguiente.
Puede crear un MD5 de un directorio, almacenar este MD5 y luego comparar el nuevo MD5 con el antiguo para ver si las cosas han cambiado.
La siguiente función tomada de http://php.net/manual/en/function.md5-file.php haría esto por usted.
function MD5_DIR($dir)
{
if (!is_dir($dir))
{
return false;
}
$filemd5s = array();
$d = dir($dir);
while (false !== ($entry = $d->read()))
{
if ($entry != ''.'' && $entry != ''..'')
{
if (is_dir($dir.''/''.$entry))
{
$filemd5s[] = MD5_DIR($dir.''/''.$entry);
}
else
{
$filemd5s[] = md5_file($dir.''/''.$entry);
}
}
}
$d->close();
return md5(implode('''', $filemd5s));
}
Sin embargo, esto es bastante ineficiente, ya que, como probablemente sepa, no tiene sentido verificar todo el contenido de un directorio si el primer bit es diferente.
Estoy buscando una solución para detectar cambios en la (s) carpeta (s) usando php . La aplicación puede ejecutarse en ambas plataformas ( Linux y Windows ). Puedo usar diferentes métodos para cada plataforma siempre que los resultados sean los mismos. Lo que deseo es:
- Si se agrega un archivo / carpeta a un directorio, quiero que mi aplicación detecte este nuevo archivo y lea sus atributos (
size,filetime
archivosize,filetime
etc.) - Si se guarda un archivo / carpeta existente / se cambia / elimina contenido, necesito detectar que este archivo ha cambiado
- Sería mejor si puedo monitorear una carpeta base fuera de webroot de apache (como
c:/tmp
, od:/music
en windows o/home/ertunc
en linux)
Leí algo sobre inotify
pero no estoy seguro de que satisfaga mis necesidades.
me gustaría
- escanear todas las carpetas / archivos y crear una matriz de ellos,
- guarda esto en alguna parte
- ejecute este escaneo de nuevo más tarde [para verificar si el conjunto sigue teniendo el mismo aspecto].
Como tiene toda la estructura de datos desde "hora 1" y "ahora", puede ver claramente qué ha cambiado. Para rastrear los directorios, verifique esto: http://www.evoluted.net/thinktank/web-development/php-directory-listing-script y este http://phpmaster.com/list-files-and-directories- con-php /
Monitorear el sistema de archivos para los cambios es una tarea que debe resolverse fuera de PHP. Realmente no está hecho para hacer cosas como esta.
Hay herramientas listas para usar en ambas plataformas que pueden monitorear cambios de archivos que podrían llamar a un archivo PHP para hacer el procesamiento posterior.
Para Linux:
- ¿Cómo monitorear eficientemente un directorio para cambios en Linux? (se ve mejor a simple vista)
- Monitorear el directorio para cambios
Para ventanas: