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

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

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

 

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

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

тема: вытащить теги <a> и </a> и текст между ними
 
 автор: Zombi   (24.08.2006 в 10:53)   письмо автору
 
 

необходимо найти и поместить в массив все теги <a> и их содержимое,
при том что между <a ... и </a>
могут быть любые теги и символы включая \n и \r.
я пробовал написать комманду:

preg_match_all("#<a.*</a>#si",$str,$mas);

- но в результате был создан массив из одного
элемента текст в котором начинался с первого <a
и заканчивался последним </a> найденным в исходном тексте, между которыми были другие такиеже теги,
какое выражение или параметр надо задать чтобы он брал первые найденные </a> и заносил их в массив.

   
 
 автор: cheops   (24.08.2006 в 11:24)   письмо автору
 
   для: Zombi   (24.08.2006 в 10:53)
 

Сделайте регулярное выражение не жадным при помощи модификатора U
<?php
preg_match_all
("#<a.*</a>#siU",$str,$mas);
?>

или конструкции .*?
<?php
preg_match_all
("#<a.*?</a>#si",$str,$mas);
?>

   
 
 автор: Zombi   (24.08.2006 в 20:40)   письмо автору
 
   для: cheops   (24.08.2006 в 11:24)
 

Благодарю, оба варианта работают.

   
Rambler's Top100
вверх

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