2015-11-25 69 views
0

我目前正在開發一個足球俱樂部的網站。 我選擇了官方網站上的排名(我有權限)。問題是沒有RSS提要,那麼我不得不修補。 我創建一個PHP文件與此代碼:如何在Drupal中使用preg_match_all

<?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; 


    } 


?> 

結果:

enter image description here

回答

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 
+0

它的工作原理! thx :-D – user3592221

+0

如何鏈接此特定模塊的css文件? – user3592221

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

+0

它的工作原理,但Drupal的模塊中沒有的功能:/ – user3592221

+0

你說的不工作呢?它是否顯示錯誤? – Daniel

+0

代碼的工作原理,但不是在一個drupal頁面,像一個基本的PHP文件的空白頁面 – user3592221