|
|
|
| Если кто-то знает, то подскажите как реализовать на php то, что делает браузер. я написал предварительный код. он обрабатывает строку. разбивает на теги и текст. записывает свойства тегов.
Теперь задача стоит в том, что необходимо тексту заключенному в теги приписывать свойства тегов, в которых они заключены, учитывая вложенность. | |
|
|
|
|
|
|
|
для: prosaic
(26.03.2007 в 16:35)
| | простите, что лезу несколько глубже, но...... нафига?
просто делайте print / echo и браузер сделает все сам! | |
|
|
|
|
|
|
|
для: bronenos
(26.03.2007 в 16:49)
| | меня спрашивают уже не первый раз. информация в html коде переносится в прогу. так вот чтобы её туда передать нужно её преобразовать. привести в определенный вид. для этого нужно сделать то, что делает браузер.
подскажите, пожалуйста. | |
|
|
|
|
|
|
|
для: prosaic
(26.03.2007 в 18:19)
| | Давайте встанем на место браузера:
Я встречаю тэг html. Чтобы узнать где кочается его содержимое, я ищу тэг </html>
Хорошо, нашел. Теперь я нашел тэг head, узнаю-ка я а где кончается он </head>
Теперь проанализирую то, что нашел в тэге head.
Встретил тэг meta. Я знаю, что он не контейнерный. Не буду искать </meta>, а аттрибуты запомню.
Думаю, как-то так идет алгоритм. То есть, сверху-вниз, снаружи внутрь. Но предполагается, что html написан без ошибок (нет закрывающих тэгов без открывающих, соблюдена вложенность и нет ошибок типа <b><i>text</b></i> и пр.), кроме того, я думаю, будет не легко объединить все собранные данные воедино. Хотя, если пихать все тэги и инфу о них в массив поочереди... Все равно, это довольно сложная задача, я думаю. И, почти наверняка, без рекурсии не обойтись.
function parse_tag
{
if (нашел новый тэг внутри этого)
{parse_tag()}
} | |
|
|
|