|
|
|
| Здравствуйте.
Как вывести содержимое внутри тега div, в не зависимости от количества тегов внутри дива
делаю так, не получается
<?
$info = "|<div id=\"content\">(.*?)</div>|";
preg_match_all($info, $content, $out_content);
print_r($out_content);
?>
|
| |
|
|
|
|
|
|
|
для: Den*s
(14.10.2009 в 17:22)
| | так и делается обычно
Есть только ещё рекурсивные подмаски , которые учитывают вложенные такие-же теги
<?
header('Content-type: text/plain; charset=utf-8');
$txt = '<div>
<div class="x"> xxxxxx </div>
..........
</div>
<div>
<div class="x"> xxxxxx </div>
<div class="y"> yyyyyyyyyy </div>
</div>
<div>.......</div>';
$re = '#<div[^>]*>((?:(?>(?!</?div).[^<]*)+|(?R))*)</div>#s';
preg_match_all($re, $txt, $out);
print_r($out);
?>
| и разные подходы к одним и тем-же задачам
, например как здесь вместо нежадного .*?
жадноватое (?>(?!</?div).[^<]*)+ | |
|
|
|
|
|
|
|
для: heed
(14.10.2009 в 18:48)
| | Большое спасибо, всё получилось.
Подскажите, а если в тэге div есть куча разных тегов, ссылок, JavaScript'ов и прочее, есть ли какое ни будь решение, что бы вывести всё содержимое этого тэга??? | |
|
|
|
|
|
|
|
для: Den-s
(19.10.2009 в 11:41)
| | Все такие выражения должны независимо от попадания неискомых тегов нормально срабатывать , если ничего не напутано .
Только могут быть например html-комментарии <!-- --> возможно усугубленные javascript
или аттрибуты тегов x="</div" , содержащие какой-либо тег div
, и в случае с рекурсивным шаблоном правильно обработается только правильная (как по стандарту xhtml) вложенность.
Вобщем трудно ответить на этот вопрос чисто теоретически ,) обычно шаблон пишется как наиболее простой и быстродействующий, и только если впоследствии чего-то необходимо учесть какое-то усложнение приходится всё усложнять. Но сложный разбор текста обычно заметно медленнее
Многое себе можно позволить только в своих локальных скриптах, которые не будут эксплуатировать в иногда жёстких условиях набегов стай сёрферов ,) и где время выполнения не так важно | |
|
|
|