From 24faac757d7169dd2f26a15c54fb9033bdf6b3da Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Wed, 15 Mar 2006 17:03:44 +0000 Subject: [PATCH] preg_files doit savoir gerer les liens symboliques recursifs --- ecrire/inc/flock.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ecrire/inc/flock.php b/ecrire/inc/flock.php index 63617ea6b5..0509a6b882 100644 --- a/ecrire/inc/flock.php +++ b/ecrire/inc/flock.php @@ -193,7 +193,7 @@ function creer_repertoire($base, $subdir) { // si $dir = 'rep/sous_rep_' au lieu de 'rep/sous_rep/' on scanne 'rep/' et on // applique un pattern '^rep/sous_rep_' // -function preg_files($dir, $pattern=-1 /* AUTO */ ) { +function preg_files($dir, $pattern=-1 /* AUTO */, $recurs=array()) { if ($pattern == -1) $pattern = "^$dir"; $fichiers = array(); @@ -212,9 +212,11 @@ function preg_files($dir, $pattern=-1 /* AUTO */ ) { if (is_file("$dir/$f")) { if (preg_match(",$pattern,i", "$dir/$f")) $fichiers[] = "$dir/$f"; - } else if (is_dir("$dir/$f")) { + } else if (is_dir("$dir/$f") + AND !in_array(realpath("$dir/$f"), $recurs)) { + array_push($recurs, realpath("$dir/$f")); $beginning = $fichiers; - $end = preg_files("$dir/$f/", $pattern); + $end = preg_files("$dir/$f/", $pattern, $recurs); $fichiers = array_merge((array)$beginning, (array)$end); } } -- GitLab