2014-12-08 1 views
1

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

.... <span class="glyphicon glyphicon-comment" style="color:#ccc;"> </span>&nbsp; 
<span style="font-family:'Open Sans', arial;font-size:11px!important;color:#ccc;">0</span>&nbsp;&nbsp; 
<span class="glyphicon glyphicon-time" style="color:#ccc;"></span>&nbsp; 
<span style="font-family:'Open Sans',arial;font-size:11px!important;color:#ccc;">December 6, 2014</span> 
<span style="font-family:'Open Sans',arial;font-size:11px!important;color:#ccc;">2:00 am</span> 
<span style="font-family:'Open Sans',arial;font-size:11px!important;color:#ccc;">Hits(6)</span>.... 

Так я пытался использовать следующие код с использованием объекта PHP DOM и XPATH, чтобы выполнить поиск, но с ошибкой с нулевой длиной результата. Зачем ?

//libxml_use_internal_errors(true); 
     $dom_document = new DOMDocument(); // CREATE A NEW DOCUMENT 
     $dom_document->loadHTML(
      mb_convert_encoding($row['html'], 'HTML-ENTITIES', 'UTF-8') 
     ); // LOAD THE STRING INTO THE DOCUMENT 
     $classname = "font-family:'Open Sans',arial;font-size:11px!important;color:#ccc;"; 
     $xpath  = new DOMXPath($dom_document); 
     $results = $xpath->query("//*[@span=\"" . $classname . "\"]"); 
      var_dump($results); 
     if ($results->length > 0) { 
      $date = $results->item(0)->nodeValue; 
     } 
     //libxml_use_internal_errors(false); 

ответ

1

Ваш $classname вводит в заблуждение/запутанным, он не содержит имя класса, который находится внутри вашего образца разметки, но правит стиль CSS.

$classname = "font-family:'Open Sans',arial;font-size:11px!important;color:#ccc;"; 

Вы должны искать узлы, которые имеют стиль этого правила:

$results = $xpath->query("//*[@style=\"" . $classname . "\"]"); 

Sample Output