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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск текста внутри тега, который обернут в другой тег

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Skandalli
Отправлено: 17 Сентября, 2015 - 23:55:21
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




Подскажите с регуляркой
<div class=1>
текст
<p> текст , который нужно выдернуть </p>
</div>
 
 Top
Deonis
Отправлено: 18 Сентября, 2015 - 00:04:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 298
Дата рег-ции: Нояб. 2009  


Помог: 14 раз(а)




Skandalli, я не любитель регулярок, а в отношении парсинга HTML - неистово лютую )) Потому, что регулярные выражения никогда не были инструментом для этих целей. Поэтому даю вам такой вариант:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $html = '<div class=myclass1>
  3. текст
  4. <p> текст , который нужно выдернуть </p>
  5. </div>';
  6.  
  7. $dom = new DomDocument;
  8. $dom->loadHTML($html);
  9. $xpath = new DomXPath($dom);
  10. $p = $xpath->query("//div[contains(@class, 'myclass1')]/p");
  11. echo $p->item(0)->nodeValue; // текст , который нужно выдернуть

(Отредактировано автором: 18 Сентября, 2015 - 00:05:40)

 
 Top
Skandalli
Отправлено: 18 Сентября, 2015 - 00:26:47
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




Deonis я дико извиняюсь, что заставляю Вас негодовать (как я понимаю, по делу), но задание дано именно на regexp)
 
 Top
Panoptik
Отправлено: 18 Сентября, 2015 - 00:31:39
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




(Отредактировано автором: 18 Сентября, 2015 - 00:32:01)



-----
Just do it
 
 Top
DeepVarvar Супермодератор
Отправлено: 18 Сентября, 2015 - 08:04:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Skandalli пишет:
но задание дано именно на regexp
+100500 Deonis'у, и по шапке тем кто такие задания задает. А чтобы эти задаватели поняли какую чушь они порят, я бы задал им вот такое задание:
CODE (html):
скопировать код в буфер обмена
  1. <input type='text' name=text1 class='a b c d' value="" />
  2. <input type=text name="text2" class=' z y z    ' >
  3. ... и тут еще штук 30-50 таких инпутов в разных комбинациях кавычек у атрибутов, оберток из дивов, пэшек, текстовых нод и прочей специфики ...

Вытащить с помощью регулярки все значения type/name/class/value для всех инпутов, а если какого-то атрибута не будет, значит вывести пустое значение.
Только нужно учитывать, например, что если атрибут тип не задан, значит там не пусто, а type=text по умолчанию.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB