Поиск шаблона в файле PHP и чтение числа после этого шаблона - PullRequest
0 голосов
/ 19 июня 2019

Я работаю над проектом, который требует от меня найти все функции в нескольких сотнях файлов php и вернуть номер строки, в которой функция была впервые создана, а также номер строки, на которой функция закрывается. Весь файл загружается в виде строки, и каждая строка в файле начинается с номера строки. Я нашел число, с которого начинаются функции, и в переменных оно содержит имя функции, что означает, что я могу установить шаблон, но, похоже, не могу сузить способ выяснить, где он заканчивается.

Часть строки может выглядеть примерно так:

Line11 blah blah blah Line12 function doSomething ( $foo, $fab ) Line13 { Line14 ... Line15 { Line16 ... Line18 ... Line19 ... Line21 if (... ) Line22 ... ( ... ); Line23 break; Line24 } Line25 die ( ... ); Line26 } Line27 Blah Blah Blah

В этом случае мне нужно знать, что функция заканчивается в строке 26.

Я пытался использовать функцию для получения числа путем сопоставления надежных шаблонов на каждой стороне:

функция поиска строк между шаблонами:

function get_string_between($string, $start, $end){
    $string = ' ' . $string;
    $ini = strpos($string, $start);
    if ($ini == 0) return '';
    $ini += strlen($start);
    $len = strpos($string, $end, $ini) - $ini;
    return substr($string, $ini, $len);
}


$name = 'doSomething';
$paradigm = '$foo, $fab';
$start = 12;
$mess = 'Line'.$start.'function'.$name.'('.$paradigm.')'.'/\{([^{}]|(?R))*\}/'.' Line';
$lineNum = get_string_between($string, $mess, ' ');
echo $lineNum;

Я ожидал вывода 26, но в настоящее время он ничего не возвращает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...