Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывести содержимое внутри тега, в не зависимости от количества тегов внутри
 
 автор: Den*s   (14.10.2009 в 17:22)   письмо автору
 
 

Здравствуйте.
Как вывести содержимое внутри тега div, в не зависимости от количества тегов внутри дива
делаю так, не получается

<?
 $info 
"|<div id=\"content\">(.*?)</div>|"
   
preg_match_all($info$content$out_content);
   
print_r($out_content);
?>

  Ответить  
 
 автор: heed   (14.10.2009 в 18:48)   письмо автору
 
   для: 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).[^<]*)+

  Ответить  
 
 автор: Den-s   (19.10.2009 в 11:41)   письмо автору
 
   для: heed   (14.10.2009 в 18:48)
 

Большое спасибо, всё получилось.
Подскажите, а если в тэге div есть куча разных тегов, ссылок, JavaScript'ов и прочее, есть ли какое ни будь решение, что бы вывести всё содержимое этого тэга???

  Ответить  
 
 автор: heed   (19.10.2009 в 18:40)   письмо автору
 
   для: Den-s   (19.10.2009 в 11:41)
 

Все такие выражения должны независимо от попадания неискомых тегов нормально срабатывать , если ничего не напутано .
Только могут быть например html-комментарии <!-- --> возможно усугубленные javascript
или аттрибуты тегов x="</div" , содержащие какой-либо тег div
, и в случае с рекурсивным шаблоном правильно обработается только правильная (как по стандарту xhtml) вложенность.
Вобщем трудно ответить на этот вопрос чисто теоретически ,) обычно шаблон пишется как наиболее простой и быстродействующий, и только если впоследствии чего-то необходимо учесть какое-то усложнение приходится всё усложнять. Но сложный разбор текста обычно заметно медленнее
Многое себе можно позволить только в своих локальных скриптах, которые не будут эксплуатировать в иногда жёстких условиях набегов стай сёрферов ,) и где время выполнения не так важно

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования