[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Шаблон для html
temp00ff
Подмогите составить шаблон для html странички. страница выводится вот в таком виде:
<div class="qbox">
<h4>
Вопрос1</h4>
A.<input type="radio" disabled="disabled" checked="checked" /><span class="your_choice">Ответ11</span><span class="wrong">Неверно</span><br />
B. <input type="radio" disabled="disabled" />Ответ12<br />
...
C. <input type="radio" disabled="disabled" />Ответ1N<br />
<div
class="key">Подсказка1</div></div>

<div
class="qbox">
<h4>
Вопрос2</h4>
B. <input type="radio" disabled="disabled" />Ответ21<br />
A. <input type="radio" disabled="disabled" checked="checked" /><span class="your_choice">Ответ22</span><span class="correct">Верно</span> <br />
C. <input type="radio" disabled="disabled" />Ответ2N<br />
<div
class="key">Подсказка2</div></div>

и т.д.

необходимо удалить вопросы, на которые дан верный ответ. написал свой вариант, но он естественно не работает =)
preg_replace("/<div class=\"qbox\">[\S\s]+(class=\"correct\")[\S\s]+<\/div><\/div>/", "", $html_data);

т.е. мой вариант заменяет все начиная от первого <div class="qbox"> до последнего </div></div>, итого все-все вопросы удаляются. как можно заставить шаблон вырезать до ближайшего </div></div>?



Спустя 7 часов, 48 минут, 42 секунды (10.08.2010 - 11:48) ApuktaChehov написал(а):
Мне думается, что тут можно пойти, как сказал бы Боря Моесеев - методом от противного. biggrin.gif Т.е. не вырезать правильные ответы, а найти неправильные.
Вот так у меня получилось:
 preg_match_all("/<div class=\"qbox\">.*(<span class=\"wrong\">Неверно<\/span>)+.*<\/div><\/div>[^<div class=\"qbox\">]/s", $str, $arr); 

Спустя 2 минуты, 7 секунд (10.08.2010 - 11:51) ApuktaChehov написал(а):
Даже можно еще короче:
preg_match_all("/<div class=\"qbox\">.*(?:class=\"wrong\">)+.*<\/div><\/div>[^<div class=\"qbox\">]/s", $str, $arr);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.