Archive pour janvier 2010

Plugin Google Analytics pour wordpress se reset en boucle

Google Analytics Plugin for Wordpress

Le plugin google analytics pour Wordpress est bien pratique: il permet d’insérer le code de tracking google analytics sans toucher au fichier theme.

Il a toutefois un défaut: à chacune des mises à jour, j’ai du re-entrer les paramètres.

Après une mise à jour de Wordpress et du plugin google analytics, mauvaise surprise: impossible de re-enregistrer les paramètres, chaque tentative se solde par le message: Lire la suite de cette entrée »

Rechercher des fichiers depuis PHP avec un masque

Ce matin, j’ai eu besoin d’un fonction permettant de rechercher des fichiers d’après un masque (tel que ‘*.txt’) dans un dossier.

Malheureusement, je n’ai pas trouvé mon bonheur parmi les fonctions PHP, même si PHP5 apporte des fonctions interessantes, telle que scandir().

Après avoir achevé d’écrire une petite fonction permettant de trouver les fichiers correspondant à un masque de recherche, j’ai décidé de la partager.

Note: cette fonction requiert PHP5 ou ultérieur, car elle utilise les fonctions scandir() et fnmatch(). Enfin, notez également que cette fonction retourne le contenu filtré du répertoire, quel que soit ce contenu: fichier, lien, dossier..

Bonus: par défaut, cette fonction intègre un système de cache. Lorsque vous scannez le répertoire, le résultat est mis en cache. Ainsi, dès le deuxième appel à la fonction pour le même répertoire, il n’est pas rescanné. Pour dévalider la mise en cache, le troisième paramètre doit être mis à 1.

function searchdir( $path='.', $mask='*', $nocache=0 ){
 static $dir = array();
 if ( !isset($dir[$path]) || $nocache) {
 $dir[$path] = scandir($path);
 }
 foreach ($dir[$path] as $i=>$entry) {
 if ($entry!='.' && $entry!='..' && fnmatch($mask, $entry) ) {
 $sdir[] = $entry;
 }
 }
 if ($nocache)
 unset($dir);
 return ($sdir);
}

Avez-vous trouvé cette fonction utile? Des améliorations à suggérer? Postez un commentaire pour me le dire!

Recherche
Catégories
Archives