Bon, voila la réponse plus détaillée.
Soit tu passes par un ou des outils externes, soit tu utilises un editeur avec des fonctions de recherche avancé ( eclipse par exemple avec le package PDT dispo
ici)
Dans cet editeur, une fois ton projet créé et tout tes sources importés au sein du projet, tu peux faire une recherche soit sur les déclaration des fonctions, soit sur les occurences via une recherche texte pour laquel tu pourra activer differentes option tel que les regexp.
Soit tu passes par des outils externes et donc par un shell (ou une boite dos sous windows)
Cela suppose que tu ait déjà récupérer des outils. Soit les outils basique en ligne de commande qui sont gratuits (grep et find) soit des outils sous windows qui peuvent etre gratuit ou pas.
La version ligne de commande en supposant que tu cherches la fonction foobar() c'est
find -name *.php -exec grep -l '\Wfoobar\s*?\(' {} \;
ca signfie que tu cherches tous les fichier php et que pour chacun tu execute la fonction grep avec ses paramentre (fin de la fonction délimité par le \; ).
Les argumenst de grep sont -l pour n'avoir que le nom du fichier qui match, une string représentant la regexp que tu cherches et les {} represent le fichier courant trouvé par le find.
http://gnuwin32.sourceforge.net/packages/findutils.htm
http://gnuwin32.sourceforge.net/packages/grep.htm
Dans les outils windows, je suis pas spécialiste mais y a au moins total-commander qui est capable de te faire des recherche avancés
http://www.ghisler.com avec des regexp correcte
Et après, tout ce que google peut te sortir comme outils tel que wingrep
http://www.wingrep.com/ and co mais je viens de tester wingrep ou examine32 et je ne suis pas convaincu... Mauvaise gestion des regexps
Pour total commander, tu te met sur le rep qui contient les sources , tu fais alt-f7
*.inc *.php dans la liste des fichiers a matcher
tu coches find texte en bas ainsi que regex
et tu entres dans la pattern a rechercher la regexp que tu souhaites
\Wfoobar\s*?\( par exemple pout trouver les occurences de foobar(
\W signifie tout ce qui n'est pas une lettre ou un chiffre, \s un séparateur (espace, tab newline), le * de 0 a N et le ? fait que l'* matchera la plus petit occurence possible (ungreddy), enfin le \( pour matcher la parenthese
Good luck
