2015-08-14 4 views
1

У меня есть страница новостей, которая показывает мои новости. Я использовал таблицу, чтобы показывать заголовки.читать содержимое таблицы html с определенным классом

<table class="news"> 
<tr> 
    <th>#</th> 
    <th></th> 
</tr> 
<tr>...</tr> 
<tr>...</tr> 
</table> 

У меня есть другие таблицы на этой странице. Но я хочу, чтобы эта таблица была на другой странице. Я искал и просто нашел этот способ:

$text = file_get_contents("http://www.example.com/news"); 
echo strip_tags($text, "<table><tr><th><td>"); 

Выход содержит все таблицы на странице новостей. Моя цель - просто таблица с «новостями».
Как я могу это сделать?

+0

Я предлагаю вам использовать PHP DomParser. – Kristiyan

+0

@ Kristiyan, так что вы могли бы объяснить, как я могу это сделать? то, может быть, вы можете показать мне хорошую ссылку. Тпй. – PKa

+0

Вы можете показать свой html-ответ? – miglio

ответ

0

Я создал пример кода с двумя таблицами. Вы можете увидеть результат в конце

<?php 
$html = <<<EOT 
<table class="news" border='1'> 
<tr> 
<th>#</th> 
<th></th> 
</tr> 
<tr><td>New 1 - first </td><td>New 1 - second </td></tr> 
<tr><td>New 1 - fifth </td><td>New 1 - forth</td></tr> 

</table> 
<table class="another_news" border='1'> 
<tr> 
<th>#</th> 
<th></th> 
</tr> 
<tr><td>Another New 1 - first </td><td>Another New 1 - first </td></tr> 
<tr><td>AnotherNew 1 - first </td><td>Another New 1 - first </td></tr> 

</table> 
EOT; 
echo $html; 
echo "<hr>"; 
$doc = new DOMDocument(); 
libxml_use_internal_errors(true); 
$doc->loadHTML($html); // loads your HTML 
$xpath = new DOMXPath($doc); 
// returns all tables with class news 
$tables = $xpath->query('//table[@class="news"]'); 
$requiredTable = ''; // This will html of tables 
foreach ($tables as $table) { 
    $requiredTable .= $doc->saveXML($table); 
} 
echo $requiredTable; 
?> 

Это должно напечатать таблицу в $requiredTable переменной

+0

Его так близко. но мне нужны основные теги. не простой текст. любое решение? – PKa

+0

Я обновил код выше, чтобы вернуть html таблицы – Yogesh

0
echo strip_tags($text, "<table class='news'>|<tr>|<th>|<td>"); 

Это должно лишить все теги для тех, кто

echo strip_tags($text, "<table><tr><th><td>"); 

Это лишит все за исключением строки, кроме:

<table><tr><th><td>

Смежные вопросы