php - распарсить html
От: Кодт Россия  
Дата: 04.06.03 10:35
Оценка:
Затеял сделать собственную систему управления контентом (CMS).

Известные мне — phpwebsite, ezpublish, runuke и т.п. — не очень устраивают из-за громоздкости,
а также из-за того, что документы в них хранятся как записи в БД.
Соответственно, сопровождать их нужно через веб-интерфейс, либо через phpMyAdmin.

И пришла мне в голову затея — делать документы-сырцы, скажем, в HTML.

А движок сайта пусть извлекает из них информацию, помеченную особым образом.
К примеру <title>...</title> — это заголовок, <body>...</body> — это текст, и так далее.

В связи с этим пара вопросов

1) Не изобретаю ли я велосипед?
Можно ли где чего почитать на эту тему?
Существуют ли какие-то готовые CMS на основе html-файлов?

2) Технический вопрос
Как парсить многострочный текст?
preg_match("/<body>(.*)<\/body>/i", $html, $result)

удается только если $html не содержит CR|LF.
Пришлось воспользоваться ereg, но в документации сказано, что он медленнее. Кроме того, preg мощнее (или я заблуждаюсь)?
Во всяком случае, если я захотел вытащить все-все-все вхождения (preg_match_all), то с помощью ereg такой фокус не получится.
А разбить HTML на строки и парсить каждую по отдельности — не есть правильно: HTML-редактор может навтыкать переносы куда угодно, например, так:
<body
>.....</body>

особенно это касается <div> | <span>, которые нужно различать по их id|class.



(Оговорюсь сразу: в php я новичок, и возможно, делаю какие-то очевидные глупости. Если да — укажите),
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.