freeek
Новичок
Re: распарсить РНР файл, вывести содержимое каждой фунции отдельно
не то что можно а даже нужно!Автор оригинала: jeno
нужно распарсить этот файл так чтоб получить отдельно названия 3х функция (part1, part2, part3) и отдельно их содержимое (то что в фигурных скобках)...
можно было бы воспользоваться регулярными выражениями, но внутри функции могут быть закрывающие фигурные скобки, от чего могут возникнуть ошибки... (парсер будет возвращать все содержимое до первой фигурной скобки =\ )
мне надо чтоб парсер понимал какая закрывающая скобка что закрывает...
как это лучше сделать?
имхо:я вижу вариант с циклом,которые будет бегать по файлу, и разбираться какая скобка что закрывает/открывает...
но может есть более простые решения? (может быть просто регулярным выражением как-то)
спасибо!
PHP:
$f = 'function part1()
{
$HTML1=<<<EOF
... some html 1 ...
EOF;
}
function part2()
{
if(1){
$HTML2=<<<EOF
... some html 2 ...
EOF;
}
}
function part3()
{
$HTML3=<<<EOF
... some html 3 ...
EOF;
} ';
preg_match_all('%(?<=function\s)[a-z0-9]+(?=\(\))%isU',$f,$m);
preg_match_all('%\{((?>[^{}])|(?R))*\}%is',$f,$h,PREG_SET_ORDER);
echo '<pre>';
print_r($m);
print_r($h);
exit();