Я думаю, вы должны обернуть решение в функцию.
Регулярные выражения подходят для работы, но я думаю, что вы также можете использовать класс DOM. Что-то вроде:
$menu = '<ul id="menu">
<li id="some-id" class="many classes one"><a href="#">text</a></li>
<li id="some-id" class="many classes two active"><a href="#">text</a></li>
<li id="some-id" class="many classes three"><a href="#">text</a></li>
</ul>';
// using a constant instead a "magic number" inside below function
define(NUMBER_POSITION, 2);
function getActiveItem($menuStr) {
$doc = new DOMDocument();
$doc->loadXML($menuStr);
$listItems = $doc->getElementsByTagName('li');
foreach($listItems as $listItem) {
// case count equals 1, expression will be true
if (substr_count($listItem->getAttribute('class'), 'active')) {
$classes = explode (' ',$listItem->getAttribute('class'));
return $classes[NUMBER_POSITION];
}
}
}
echo getActiveItem($menu);
Вот и все.