我目前正在为足球俱乐部开发网站。 我选择官方网站上的排名(我有权限)。问题是没有RSS提要,那我就要修补。 我用这段代码创建了一个php文件:
<?php
$adresse = "http://lafa.fff.fr/competitions/php/club/club_classement_deta.php?sa_no=2011&cp_no=272284&ph_no=1&gp_no=1&cl_no=3232&eq_no=1";
$page = file_get_contents ($adresse);
preg_match_all ('#<table cellpadding="0" cellspacing="0" border="0" summary="" class="tablo bordure ac">(.*?)</table>#', $page, $prix);
// On stocke dans le tableau $prix les éléments trouvés
echo '<table>';
for($i = 0; $i < count($prix[1]); $i++) // On parcourt le tableau $prix[1]
{
echo $prix[1][$i]; // On affiche le prix
}
echo '</table>';
?>
问题是我有那个整合drupal而且它不起作用。我试图创建一个模块并创建一个函数,结果相同。 我使用php代码创建了一个内容页面,结果相同,它不起作用。
我该怎么做?
干杯
更新:在我的drupal module.module中:
<?php
include_once('simple_html_dom.php');
function classements_liste(){
$url="http://lafa.fff.fr/competitions/php/club/club_classement_deta.php?sa_no=2011&cp_no=272284&ph_no=1&gp_no=1&cl_no=3232&eq_no=1";
$dom = str_get_html(file_get_contents($url));
$tables = $dom->find('table');
echo $tables[0];
echo $tables[1];
}
function classements_menu() {
$items['classements/list'] = array(
'title' => 'Liste des classements',
'page callback' => 'classements_liste',
'page arguments' => array('access content'),
'access callback' => true,
'type' => MENU_CALLBACK,
);
return $items;
}
?>
结果:
答案 0 :(得分:2)
使用以下定义的连接:
$adresse = "http://lafa.fff.fr/competitions/php/club/club_classement_deta.php?sa_no=2011&cp_no=272284&ph_no=1&gp_no=1&cl_no=3232&eq_no=1";
$page = file_get_contents ($adresse);
preg_match_all('#<table cellpadding="0" cellspacing="0" border="0" summary="" class="tablo bordure ac">(.*?)</table>#', $page, $prix);
$data = '<table>'; // here the table is define
for($i = 0; $i < count($prix[1]); $i++){
$data .='<tr><td>'.$prix[1][$i].'</td></tr>'; // add table row
}
$data .= '</table>'; // finish table
$block['content'] = $data; // assign to block or simple print in case of page
答案 1 :(得分:0)
您可以使用simplehtmldom遍历html结构而不是preg_match_all。
include('simple_html_dom.php');
$html = file_get_html('http://lafa.fff.fr/competitions/php/club/club_classement_deta.php?sa_no=2011&cp_no=272284&ph_no=1&gp_no=1&cl_no=3232&eq_no=1');
$table = $html->find('table[class=\'tablo bordure ac\']', 0);
$rowData = array();
foreach($table->find('tr') as $row) {
$row = array();
foreach($row->find('td') as $cell) {
$row[] = $cell->plaintext;
}
$rowData[] = $row;
}
echo '<table>';
foreach ($rowData as $row => $tr) {
echo '<tr>';
foreach ($tr as $td)
echo '<td>' . $td .'</td>';
echo '</tr>';
}
echo '</table>';
取自here的例子。