auto_RSF : recherche récursive de chaine dans des fichiers
Toujours dans la rubrique j'en ai marre de le faire à la main, j'ai bricolé un fichier pour pallier à ce qui m'a le plus manqué quand je suis passé de Netbeans à Intype: la recherche de chaines dans les fichiers d'un projet... combien de fois ai-je eu besoin, pour trouver dans quelle partie d'un cms inconnu se trouvent certains appels ou certaines fonctions, de relancer Netbeans et d'effectuer cette maudite recherche...
Bon, ben là, ça le fait pour vous... Pour l'instant, c'est encore moins bien, vu que ça ne donne que la liste des fichiers sans préciser la ligne ou le contexte... ce sera pour une future MAJ ...
Si ça sert à quelqu'un, c'est là !
Le code pour se faire une idée...
<?phpfunction exclude_folder_large_or_image($file){ if (!is_file($file)){return false;} if (filesize($file)>1000000){return false;} if (preg_match_all('/(?<=.)mp3|mp4|flv|jpeg|jpg|gif|png|swf/i',$file,$puits)){return false;} if (stripos($file,'$')){return false;} return true; } function glob_recursive($pattern, $flags = 0) // trouvée sur php.net/manual/fr/function.glob.php { $files = glob($pattern, $flags); foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir) { $files = array_merge($files, glob_recursive($dir.'/'.basename($pattern), $flags)); }
return $files; }$dossier=''; if (isset($_POST['search'])&&$_POST['search']!=''){ $dossier=$_POST['f']; $chaine_a_chercher=$_POST['search']; if ($_POST['e']!=''){$extension='.'.$_POST['e'];}else{$extension='';} if (isset($_POST['regex'])){$regex=true;}else{$regex=false;}
echo '<h2>Recherche de '.htmlentities($chaine_a_chercher).'</h2><hr/>'; $fichiers=glob_recursive($dossier.'/*'.$extension); echo '<ol>'; foreach ($fichiers as $fichier){ if(exclude_folder_large_or_image($fichier,$extension)){ $content=file_get_contents($fichier); if ($regex){ $nb=preg_match_all('#'.$chaine_a_chercher.'#',$content,$resultats); if ($nb>0){ echo '<li>'.htmlentities($fichier).' ('.htmlentities($nb).' fois)</li>'; } }else{ $nb=stripos($content,$chaine_a_chercher); if ($nb>0){ echo '<li>'.htmlentities($fichier).' </li>'; } } } } echo '</ol>';
} ?>
et pour le lien : Téléchargez le ZIP
Attends, si t'es du genre à passer de NETBEANS à Intype... ça explique beaucoup de choses quant à la qualité de ce que tu soumets depuis le début...
Boarf, NetBeans est trop gros, trop lent, très lourd et plein de trucs inutiles...
Un peu comme toi, en somme...
Là, je sens que ça va troller dans les comms...
Le sujet du jour: "Quel est le meilleur IDE pour developper comme un pro ?" (La semaine prochaine: "Quel est le meilleur langage pour coder comme un pro et sur quel OS faut-il l'installer ?")
❝ 12 commentaires ❞
Fil RSS des commentaires de cet article
✍ Écrire un commentaire
les commentaires relevant du SPAM seront filtrés et dégagés direct...