нужен алгоритм и методы решения задачи. работа с тегами.

Статус
В этой теме нельзя размещать новые ответы.

grad

Новичок
нужен алгоритм и методы решения задачи. работа с тегами.

Добрый день.

Задача такова: есть код HTML. например

<div style="...">one<b>two</b><font face="...">three</font></div>

нужно присвоить каждому слову, заключенному в тег, свойства самого тега сохраняя вложенность тегов.
то есть слово two имеет свойства bold тега <b></b> и style тега div, в котором может быть указан размер шрифта или цвет текста.
насколько я понимаю, мне нужно использовать регулярные выражения))))))

если бы не было вложенности тегов, то задача бы свелась к:

<?php
$str = "<div style='...'>one<b>two</b><font face='...'>three</font></div>";

preg_match_all("|<[^>]+>(.*)</[^>]+>|U", $str, $out, PREG_SET_ORDER);

$n=count($out);
$n=$n-1;

for ($i=0;$i<=$n;$i++)
{
echo $out[$i][0] . " | " . $out[$i][1]."<br />";
}

?>


далее "прочитать" свойства тега не составляет труда.

подскажите, как быть в данном случае с вложенными тегами?
спасибо.
 

baev

‹°°¬•
Команда форума
grad, Вы понимаете, что фактически хотите написать ещё один браузер?

(На php браузеры уже писались.
Можно найти на phpclasses.org — требуется регистрация...)
 

grad

Новичок
Гравицапа, эта задача нужна для обработки данных, редактируемых в tinyMCE, которые потом переводятся в векторную графику с помощью ImageMagick.

всё что мне осталось это "подготовить" мета-данные для ImageMagick.

нужен совет КАК это сделать.
 

Alexandre

PHPПенсионер
Собственно алгоритм прост, но как сказал baev, изобретаем велосипед. Это классический алгоритм синтактического разбора.

Суть алгоритма, двухуровенневый проход, первым проходом вылавливаем все теги и строим вспомогательный индекс (имя тега, pos_beg pos_end ), вторым проходом строим дерево (добавляем данные level, parent_pos ) вложенности и соответственно вычисляем все необходимые сво-ва.

Примеры на Си можно найти в интернете.
 

Фанат

oncle terrible
Команда форума
да и на пехапе можно найти примеры в Деталях.

вот только непонятен выбор редактора
 

grad

Новичок
Алекс, можно по подробнее для особо непонятливых объяснить? ))))

-~{}~ 13.03.07 11:02:

чем плох редактор?
он мне показался удобнее FCEditor. не суть важно.
 

Фанат

oncle terrible
Команда форума
ага. отличный редактор. только для хтмл.
а не для ввода данных в векторную графику.
а в остальном, конечно - просто супер!

-~{}~ 13.03.07 12:03:

Для особо непонятливых - ссылка "Статьи"
 

grad

Новичок
)))))) для решения поставленной задачи.
вразумительный ответ дал только тов. Александре.

если есть редактор "для ввода данных в векторную графику" подскажите, буду признателен.

вот только пользователю нужно сначала "накалякать" то, что впоследствии станет "вектором". для этого используется tinyMCE.

ссылка "статьи" как и ссылка "google.com" это здорово, но мне нужно конкретизировать подсказку)
 

Фанат

oncle terrible
Команда форума
Если я тебя прошу конкретизировать реплику "для этого", значит надо писать конкретно. А не отделываться такой же бессмысленной фразой.

Ссылку "статьи" тебе придётся осиливать самостоятельно. Причем больше я это повторять не буду.
 

Фанат

oncle terrible
Команда форума
Вот это мне больше всего в ламерах и не нравится.
То, что их УГОВАРИВАТЬ надо.

Как будто это мне нужно, чтобы данные вводились.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху