Skip to content
Extraits de code Groupes Projets
Valider 13343187 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

preg_files devient optionellement non recursif avec false en 4 eme argument

une fonction find_all_in_path qui retrouve l'occurence utilisee par find_in_path d'un type de fichier (defini par un $pattern) dans un sous repertoire eventuel du chemin
parent aa7043d0
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -205,6 +205,7 @@ function creer_repertoire($base, $subdir) {
// Attention, afin de conserver la compatibilite avec les repertoires '.plat'
// si $dir = 'rep/sous_rep_' au lieu de 'rep/sous_rep/' on scanne 'rep/' et on
// applique un pattern '^rep/sous_rep_'
// si $recurs vaut false, la fonction ne descend pas dans les sus repertoires
//
// http://doc.spip.org/@preg_files
function preg_files($dir, $pattern=-1 /* AUTO */, $maxfiles = 10000, $recurs=array()) {
......@@ -230,7 +231,7 @@ function preg_files($dir, $pattern=-1 /* AUTO */, $maxfiles = 10000, $recurs=arr
$nbfiles++;
}
}
else if (is_dir($f)){
else if (is_dir($f) AND is_array($recurs)){
$rp = @realpath($f);
if (!is_string($rp) OR !strlen($rp)) $rp=$f; # realpath n'est peut etre pas autorise
if (!isset($recurs[$rp])) {
......
......@@ -671,6 +671,28 @@ function find_in_path ($filename) {
return false;
}
function find_all_in_path($dir,$pattern){
$liste_fichiers=array();
$maxfiles = 10000;
// Parcourir le chemin
foreach (creer_chemin() as $d)
if (@is_dir($f = $d.$dir)){
$liste = preg_files($d.$dir,$pattern,$maxfiles-count($liste_fichiers),false);
foreach($liste as $chemin){
$nom = basename($chemin);
// ne prendre que les fichiers pas deja trouves
// car find_in_path prend le premier qu'il trouve,
// les autres sont donc masques
if (!isset($liste_fichiers[$nom]))
$liste_fichiers[$nom] = $chemin;
}
}
return $liste_fichiers;
}
// predicat sur les scripts de ecrire qui n'authentifient pas par cookie
// http://doc.spip.org/@autoriser_sans_cookie
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter