2012-10-14 39 views
1

我試圖使用simple-html-dom構建一個刮板。simple-html-dom通過類名獲取表id

每個tr都有「事件列表」類以及唯一的ID。一切正常,但我無法弄清楚如何獲取和存儲編號。

這裏是我的代碼:

foreach($html->find('tr[class=event-listing]') as $event) 
    { 
     $item['date'] = trim($event->find('td', 0)->plaintext); 
     $first_trim = ltrim($event->find('td', 1)->plaintext, 'at ,vs.'); 
     $item['opponent'] = rtrim($first_trim, ' * '); 
     $item['location'] = trim($event->find('td', 2)->plaintext); 
     $item['time'] = trim($event->find('td', 3)->plaintext); 
     $sched[] = $item; 
    } 
+0

這取決於你的HTML內容。可不要假設你的代碼..你可以提供HTML提取或鏈接.. – Baba

+0

這是一個ta ble行'   vs。北科羅拉多* 猶他州奧勒姆 W,11-6 ' –

回答

3

你不需要任何特殊$event->id會工作得很好

$string = '<tr valign="TOP" bgcolor="#d1d1d1" class="event-listing" title="2012,4,18,21,00,00" id="1444896"> <td class="row-text">&nbsp;</td> <td class="row-text">vs. Northern Colorado *</td> <td class="row-text">Orem, Utah</td> <td class="row-text">W, 11-6</td> </tr>'; 
$html = str_get_html($string); 

$sched = array(); 
foreach ($html->find('tr[class=event-listing]') as $event) { 
    $item['date'] = trim($event->find('td', 0)->plaintext); 
    $first_trim = ltrim($event->find('td', 1)->plaintext, 'at ,vs.'); 
    $item['opponent'] = rtrim($first_trim, ' * '); 
    $item['location'] = trim($event->find('td', 2)->plaintext); 
    $item['time'] = trim($event->find('td', 3)->plaintext); 
    $item['id'] = $event->id; 
    $sched[] = $item; 
} 

var_dump($sched); 

輸出

array 
    0 => 
    array 
     'date' => string '&nbsp;' (length=6) 
     'opponent' => string 'Northern Colorado' (length=17) 
     'location' => string 'Orem, Utah' (length=10) 
     'time' => string 'W, 11-6' (length=7) 
     'id' => string '1444896' (length=7) 
         ^------------------------------ ID Captured