2016-12-08 10 views
0

Есть ли способ эха (с PHP) всех абзацев (страницы HTML), принадлежащих к определенному классу? Я пытался что-то вроде этого, но это не сработало (это ничего не эхо)Эхо все абзацы определенного класса

$dom = new DOMDocument; 
$dom->loadHTML($html); //the code I need is contained in the $html variable 
foreach($dom->getElementsByTagName('p') as $paragraph) { 
     if ($paragraph->getAttribute('class') === 'items') { 
      echo $paragraph->nodeValue."<br>"; 
     } 
} 
+1

принять к сведению, что это не соответствует 'класс = "всевозможного малому шрифт центра"', просто используйте 'strpos' вместо – Ghost

+0

Возможного дубликата [PHP проверки диапазон DOMDocument класс] (Http: // StackOverflow. ком/вопросы/14186148/PHP-DOMDocument проверки пролет класс) – Mohammad

ответ

0

Резервное копирование, что Дух упоминает, что лучше использовать StrPos, если у вас есть более одного класса. Возьмите это в качестве примера.

<?php 

$html = "<p class='items two small-font'>This is paragraph 1</p> <br> <hr> <p class='items'>This is paragraph 2</p> <br> <hr> <p class='noitem'>This is paragraph 3</p> <br> <hr>"; 

$dom = new DOMDocument; 
$dom->loadHTML($html); 

foreach($dom->getElementsByTagName('p') as $paragraph) { 

    $class = $paragraph->getAttribute('class'); 

    if (strpos($class , 'items') !== false) { 
     echo $paragraph->nodeValue."<br>"; 
    } 

} 

?>