Мне нужно проанализировать пользовательский файл шаблона.PHP получить текст между несколькими настраиваемыми тегами
Допустим, файл моего шаблона выглядит так.
@section('section1')
some content
@endsection
@section('section2')
some more content
@endsection
В результате разбора мне нужно следующий результат:
array(
'section1' => 'some content',
'section2' => 'some more content'
);
Я пытался получить названия разделов первой с этим кодом:
$sectionPattern = '/(?<=\@section\().*?(?=\))/';
preg_match_all($sectionPattern, $this->fileContents, $sections);
, который работает, как ожидалось. Результат выглядит следующим образом:
$sections = array(
array(
0 => 'section1',
1 => 'section2'
)
);
Если я пытаюсь получить содержимое для каждого раздела с этим кодом:
foreach($sections[0] as $section) {
$contentPattern = '/(?<=\@section\(' . $section . '\)).*?([email protected])/';
preg_match_all($contentPattern, $this->fileContents, $content);
echo '<pre>';
print_r($content);
}
я получить только пустые массивы и я не могу понять, почему.
Кроме того, если вы видите более элегантный способ получить желаемый результат. Я открыт для предложений.
Заранее спасибо.
Невероятно! У меня все еще есть много возможностей для регулярных выражений. Благодаря! – arkhon