views:

83

answers:

1

I'm trying to make a PHP regex to extract functions from php source code. Until now i used a recursive regex to extract everything between {} but then it also matches stuff like if statements. When i use something like: preg_match_all("/(function .(.))({([^{}]+|(?R))*})/",$this->data,$matches2);

It doesn't work when there is more than 1 function in the file (probably because it uses the 'function' part in the recursiveness too).

Is there any way to do this?

Example file:

<?php
if($useless)
{
  echo "i don't want this";
}

function bla($wut)
{
  echo "i do want this";
}
?>

Thanks

+2  A: 

regexps is the wrong way to do it. Consider tokenizer or reflection

stereofrog