Как я могу извлечь данные из таблицы HTML в PHP?

Возможный дубликат:
Как анализировать и обрабатывать HTML с помощью PHP?

Предположим, я хочу извлечь из таблицы определенный номер / текст из таблицы: http://www.fifa.com/associations/association=chn/ranking/gender=m/index.html

Я хочу получить первый номер на правой таблице td в позиции рейтинга FIFA . Это будет 88 сейчас. При проверке это <td class="c">88</td> .

Как я могу использовать PHP для извлечения информации с указанной веб-страницы?

edit: Мне сказали JQuery / JavaScript, для этого … лучше подходит

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

 <?php $page = file_get_contents("http://www.fifa.com/associations/association=chn/ranking/gender=m/index.html"); preg_match('/<td class="c">[0-9]*</td>/',$page,$matches); foreach($matches as $match){ echo str_replace(array( "/<td class=\"c\">", "</td>"), "", $match); } ?> 

Я никогда не делал ничего подобного раньше с PHP, поэтому он может не работать.

Если вы можете использовать свою магию после загрузки страницы, вы можете использовать JavaScript / JQuery

 <script type='text/javascript'> var arr = []; jQuery('table td.c').each( arr[] = jQuery(this).html(); ); return arr; </script> 

Кроме того, извините за удаление моего комментария. Вы не были конкретны в отношении того, что нужно было сделать, поэтому я изначально, хотя jQuery лучше соответствовал вашим потребностям, но потом я подумал: «Может быть, вы хотите получить содержимое страницы до загрузки страницы HTML».

Попробуйте http://simplehtmldom.sourceforge.net/ ,

 $html = file_get_html('http://www.google.com/'); echo $html->find('div.rankings', 0)->find('table', 0)->find('tr',0)->find('td.c',0)->plaintext; 

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

По факту,

 echo $html->find('div.rankings', 0)->find('td.c',0)->plaintext; 

должно сработать.

Используя DOMDocument , который должен быть предварительно загружен вашей установкой PHP:

 $dom = new DOMDocument(); $dom->loadHTML(file_get_contents("http://www.example.com/file.html")); $xpath = new DOMXPath($dom); $cell = $xpath->query("//td[@class='c']")->item(0); if( $cell) { $number = intval(trim($cell->textContent)); // do stuff }