2011-04-16 251 views
2

我想存儲在多維數組中的圖像(在表中)根據他們的表和他們的描述,以便以後當我調用圖像,我可以顯示他們相應。例如,假設我有兩張桌子,一張有三張圖片,另一張有一張。解析HTML表成多維數組

我想結果數組的樣子:

Array 
(
    [0] => Array 
     (
      [0] => image1.jpg 
      [1] => 1st Variation Description 
     ) 

    [1] => Array 
     (
      [0] => image2.jpg 
      [1] => image3.jpg 
      [2] => image4.jpg 
      [3] => 2nd Variation Description 
     ) 

) 

編輯感謝在簡單的HTML DOM解析器的建議。以下是我迄今爲止所做的工作,並且就如何將數據存儲在我需要的確切結構中而言,我已經達到了一個平臺。

$html = str_get_html($vartables); 
$varinfo = array(); 
foreach($html->find('table') as $table){ 
     $varinfo[] = $table->innertext; 
} 
print_r($varinfo); 

這給了我一些效果:我想去掉HTML和多維數組保持JPG格式的和說明一起

Array 
(
    [0] => 
<tr> 
    <td width=150> 
Description1 
</td> 

<td><a href="image1.jpg"> 
<img src="image1" height=100 border=1></a> 
    </td> 
</tr> 

    [1] => 
<tr> 
    <td width=150> 
Description2 
    </td> 

<td><a href="image2.jpg"> 
<img src="image2.jpg" height=200 border=1></a> 
    </td> 
    <td><a href="image3.jpg"> 
<img src="image3.jpg" height=200 border=1></a> 

    </td> 
<td><a href="image4.jpg"> 
<img src="image4.jpg" height=200 border=1></a> 
    </td> 
</tr> 

) 

...不幸的是我的newbness在那裏越來越好,我正在研究,但遇到了障礙。

回答

2

發現這裏類似的問題,並能適應答案:how to print cells of a table with simple html dom

從我原來的結構是,這種描述在一個數組,而不是最後一個,這是第一個值,唯一不同的更好,我覺得。

$html = str_get_html($vartables); 

$html = str_get_html($vartables); 
$theData = array(); 

foreach($html->find('table') as $onetable){ 
foreach($onetable->find('tr') as $row) { 

    $rowData = array(); 
    foreach($row->find('td') as $cell) { 
     if(substr_count($cell->innertext,"src")>0){ 
     foreach($cell->find('img') as $element) { 
     $rowData[] = $element->src; 
     } 
     }else{ 
     $rowData[] = $cell->innertext; 
     } 
    } 

    $theData[] = $rowData; 
} 
} 

print_r($theData); 

輸出:

Array 
(
    [0] => Array 
     (
      [0] => Description1 
      [1] => image1.jpg 
     ) 

    [1] => Array 
     (
      [0] => Description2 
      [1] => image2.jpg 
      [2] => image3.jpg 
      [3] => image4.jpg 
     ) 

) 
+0

好標記你的問題,因爲解決了 – 2011-04-17 10:31:28

1

嘗試使用phpQuery或其他解析HTML的框架。

+0

是的,但我不能確定如何實現它們。我編輯了我的帖子,顯示了我實際知道如何處理DOM元素來解析HTML的不同事情,但除此之外我沒有任何技能。如果有人能告訴我如何,我會非常感激。 – seaofinformation 2011-04-16 09:11:53

+1

http://simplehtmldom.sourceforge.net/的確非常好 – Dormouse 2011-04-16 09:15:37

+0

如果任何人都可以幫助我如何將數據輸入到多維數組結構中,那麼這就是我遇到的最多問題。 – seaofinformation 2011-04-16 16:17:54