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
Форумы портала PHP.SU :: Версия для печати :: Регулярка, preg_match ищем текст между тегами с определенным классом
Форумы портала PHP.SU » » Вопросы новичков » Регулярка, preg_match ищем текст между тегами с определенным классом

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

1. myocean - 21 Октября, 2017 - 13:41:31 - перейти к сообщению
Здравствуйте, требуется ваша помощь в написание регулярки, нужно вытащить весь текст вместе с тегами которые имеют определенный класс...

например

CODE (html):
скопировать код в буфер обмена
  1. <table class="test">
  2. <tr>
  3. <td>bla bla bla</td>
  4. </tr>
  5. </table>


или

CODE (html):
скопировать код в буфер обмена
  1. <table border="1" class="test">
  2. <tr>
  3. <td>bla bla bla</td>
  4. </tr>
  5. </table>
2. Vladimir Kheifets - 24 Октября, 2017 - 08:12:22 - перейти к сообщению
myocean пишет:
Здравствуйте, требуется ваша помощь в написание регулярки, нужно вытащить весь текст вместе с тегами которые имеют определенный класс...

например

CODE (html):
скопировать код в буфер обмена
  1. <table class="test">
  2. <tr>
  3. <td>bla bla bla</td>
  4. </tr>
  5. </table>


или

CODE (html):
скопировать код в буфер обмена
  1. <table border="1" class="test">
  2. <tr>
  3. <td>bla bla bla</td>
  4. </tr>
  5. </table>

Доброе утро! На вопросы по регулярке Вам может быть ответят другие коллеги.
Покажу как использовать "тяжелую артиллерию” - simplexml_load_String
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $str = <<<EOM
  3. <body>
  4. <table border="1" class="test">
  5. <tr>
  6. <td>bla bla bla</td>
  7. </tr>
  8. </table>
  9. </body>
  10. EOM;
  11.  
  12. $html = simplexml_load_String($str);
  13. foreach($html->children() as $nd)
  14. {
  15.         print "tag: ".$nd->getName()."<br>";
  16.         foreach($nd->attributes() as $a => $b)
  17.         {
  18.         print "attributes: $a=$b<br>";
  19.         if($a=="class" AND $b=="test")
  20.         {
  21.             $nd1=$nd->children();
  22.             foreach($nd1->children() as $nd2)
  23.                         {
  24.                              print "tag: ".$nd2->getName()."<br>";
  25.                              print "value: ".$nd2."<br>";
  26.                         }
  27.         }
  28.         }
  29. }
  30. /*
  31. tag: table
  32. attributes: border=1
  33. attributes: class=test
  34. tag: td
  35. value: bla bla bla
  36. */
  37. ?>
3. LIME - 24 Октября, 2017 - 12:59:58 - перейти к сообщению
оох, то есть так буквально да?
ну тогда вот
http://sitear[dot]ru/material/php-pa[dot][dot][dot]-simple-html-dom
4. deu - 25 Октября, 2017 - 18:57:35 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1. [<.*.*class=\"test\")].*[/.*>]

 

Powered by ExBB FM 1.0 RC1