Извлекать текст между тегами HTML и считать их - PullRequest
0 голосов
/ 14 апреля 2011

Допустим, я написал статью со многими тегами, например [code]this is a code[/code], и я бы знал, сколько тегов code в статье и что за текст внутри.

Я пытался preg_matches и preg_replaces, но пока ничего не получалось.Каков был бы подходящий способ сделать это?

Ответы [ 2 ]

1 голос
/ 14 апреля 2011
$pattern = '/\[code\](.*?)\[\/code\]/s';

preg_match_all($pattern, $code, $matches);

echo count($matches)."\n";

var_dump($matches);
0 голосов
/ 14 апреля 2011

Это должно быть интересно для вас:

/\[code\]([^]]+)\[\/code\]/ 

Вам нужно использовать match_all, чтобы получить все значения.Кстати, в коде должен быть какой-то недостаток:

[code]blabla [code]bleh bleh[/code][/code]

Поскольку регулярное выражение не может анализировать с несколькими уровнями глубины.По крайней мере, когда глубина неизвестна.

Редактировать

/\[code\](.*)\[\/code\]/ также может быть полезным, но не будет захватывать внутренний блок.Первый соответствует только внутреннему.

...