[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Парсинг регулярками
r3al
Привет, пишу кэш, в него хочу помещать инфу о странице, а потом собирать её по такому примеру:

[header]
<script src="..."></script>
<script
src="..."></script>
[/header]

[content]
<div class="container"> тут какой-то контент страницы</div>
[/content]


вот и вопрос: я достаю части текста регуляркой

preg_match('/\[header\](.+?)\[\/header\]/si', $cache_file, $header);
preg_match_all('/\[content\](.+?)\[\/content\]/si', $cache_file, $content);


а если в кэш файле встретится констуркция вида:

[content]
[content][[/content]
[/content]


то выход прегматча будет такой:


Array
(
[0] => Array
(
[0] => [content]
[content][[/content]
)

[1] => Array
(
[0] =>
[content][
)

)


что посоветуете что бы он брал только нужную мне конструкцию от первого [content] до последнего [/content] ?
linker
Думается мне, что надо менять алгоритм помещения информации в кэш, причём так, чтобы не использовать регулярки и парсинг.

_____________
Gear Framework
Gear Framework на Github
alexbel2404
Во-во) если уж хочется где-то метки парсить, делай это в шаблоне)
Winston
Цитата (r3al @ 31.01.2014 - 01:50)
что посоветуете что бы он брал только нужную мне конструкцию от первого [content] до последнего [/content] ?

Например заменить (.+?) на (.+)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.