Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Разбиение html
Форумы портала PHP.SU » PHP » Регулярные выражения » Разбиение html

Страниц (1): [1]
 

1. SAD - 17 Июня, 2010 - 21:07:00 - перейти к сообщению
Добрый день. Есть переменная, а в ней html код
PHP:
скопировать код в буфер обмена
  1. $name = "
  2. <div class="text">some_text
  3.    <div class="type_answer">some_type</div>
  4.    <div class="answer">
  5.        <div class="ans_1">
  6.            <div class="number">1</div>
  7.            <div class="ans">answer_1</div>
  8.        </div>
  9.        .................
  10.        <div class="ans_n">
  11.            <div class="number">n</div>
  12.            <div class="ans">answer_n</div>
  13.        </div>
  14.    </div>
  15.    <div class="right_ans">right_answer</div>
  16. </div>
  17. ";


Нужно разбить эту структуру на логические блоки, получить содержимое div, названия классов, возможно id.
Т.к. я не дружу с регулярными выражениями, прошу вашей помощи. И возможно ли это вообще сделать?
2. isle - 18 Июня, 2010 - 03:11:39 - перейти к сообщению
SAD пишет:
Нужно разбить эту структуру на логические блоки, получить содержимое div, названия классов, возможно id.
Т.к. я не дружу с регулярными выражениями, прошу вашей помощи. И возможно ли это вообще сделать?


Возможно всё Радость ограничение - ваша фантазия.

Ну, например, я для себя недавно вот такую простецкую функцию написал по вытаскиванию адресов ссылок:

PHP:
скопировать код в буфер обмена
  1.         function geturlcat($link) {
  2.           if (!$link) return false; else {
  3.                 preg_match('|href="([^\'"]*)"|',$link,$uri);
  4.                 $url = $uri[1] ? $uri[1] : '';
  5.                 if ($url && $url!='') return $url; else return false;
  6.           }
  7.         }
  8.  


Вызов такой:

$url = geturlcat($link);

здесь $link представляет из себя нечто вроде (упрощенка):

<ul><li><a href=""><img></a></li></ul>

Ну, далее по аналогии всё... хотя, если нет конкретного задания, то и писать тыщу вариантов нет смысла, тем более, если в этом не понимаете. Пишите что именно нужно, вам подскажут, далее по аналогии сами сообразите Улыбка
3. JustUserR - 18 Июня, 2010 - 12:59:44 - перейти к сообщению
SAD пишет:
Нужно разбить эту структуру на логические блоки, получить содержимое div, названия классов, возможно id.
Т.к. я не дружу с регулярными выражениями, прошу вашей помощи. И возможно ли это вообще сделать?
Несмотря на то что возможности использования регулярных выражений достаточно широкие - в вашем случаве было бы логично воспользоваться HTML-парсером или как в общем случае XML-парсеом - в PHP их существует огромное количетсво http://www.php.su/functions/?page=cat_xml в зависимости от того как именно вы планируете разбор

 

Powered by ExBB FM 1.0 RC1