function parse_title($content)
{
preg_match('#<title[^<]*>(.+)</title>#siU', $content, $matches);
return isset($matches[1]) ? $matches[1] : null;
}
Парсит вполне успешно.
И все бы ничего, но попалась страничка с кодом вида
<!-- <title><data:blog.pageTitle/></title> -->
...
<title>заголовок</title>
ну и парсер естественно вытянул <data:blog.pageTitle/>
задачка: исправить :)
Сам-то я в курсе, как сделать это за два шага. Но чисто спортивный интерес сделать одной регуляркой. Затык в таком warning'е при попытке написать регулярку с просмотром назад и вперед: