2014-02-06 69 views
2

我找到了解決網絡抓取的方法,並試圖找出他正確的方式從充滿頁面的緩衝區獲取數據。如何使用PHP和簡單的HTML DOM的多個數組(+形成)DOM

  • 我包括我的變量,具有時區和簡單的HTML DOM中 它

  • 我得到的IMG公司和搜索DOM的標題,但似乎無法 找到方式來與foreach有多個查詢,我知道我是 失蹤知識在這裏,但我已經在搜索和 閱讀底部。

  • 我從前面的表單中得到變量使用得到多數民衆贊成爲什麼我有頂部 查詢字符串。

我需要的是:

  • 獲取數據在陣列

  • ,以便能夠使用它們的表和這樣的裏面。 (在圖像留在行文本和其他一些數據。)

預先感謝您,幫助將是極大的讚賞。

<?php 
// includes and variables 
include($_SERVER["DOCUMENT_ROOT"] . "/includes/variables.php");        // all includes 
// decleratus 
$url = 'http://www.domain.com/file.php?'.$_SERVER['QUERY_STRING'];     // url+selected from prev 
// shd stuff 
$html = new simple_html_dom();                // Load shd 
$html->load_file($url);                  // Load a file 
// 1st array 
foreach ($html->find("div.row img") as $varImgStr) 
{   
    $varImg = '<p style="margin-left:25px">' . $varImgStr. '</p>'; 
    echo $varImg ; 
} 
// 2nd array 
foreach ($html->find("div.row span strong") as $varTitleStr) 
{   
    $varTitle = '<p style="margin-left:25px">' . $varTitleStr. '</p>'; 
    echo $varTitle ; 
} 
// does echo full $html output 
//echo $html;                    
// clear mem 
$html->clear();                    
?> 

我部署我的工作場所離線使用PHP桌面(沒有互聯網需要)的應用程序。

什麼,我使用:

回答

1

嘗試多維數組:

foreach ($html->find("div.row img") as $varImgStr) 
{   
    $mainArray['varImg'][] = '<p style="margin-left:25px">' . $varImgStr. '</p>'; 
} 

foreach ($html->find("div.row span strong") as $varTitleStr) 
{   
    $mainArray['varTitleStr'][] = '<p style="margin-left:25px">' . $varTitleStr. '</p>'; 
} 

這產生具有兩個元件的陣列 - [ 'varImg']和[ 'varTitleStr']。這些元素中的每一個都是包含所有找到的圖像或標題的數組。你可以print_r($ mainArray);看到結構。請注意,這種方法取決於以相同順序查找相同數量的圖像和標題。

//To print the array in a simple table 

echo '<table><thead> 
    <th>Image</th><th>Title</th> 
    </thead><tbody>'; 

for ($i=0; $i<count($mainArray['varImg']); $i++) { 
    echo '<tr> <td>' . $mainArray['varImg'][$i] . '</td> 
      <td>' . $mainArray['varTitleStr'][$i] . '</tr>'; 
} 

echo '</tbody></table>'; 

請注意,在for循環中,count取自$ mainArray ['varImg'],而不是$ mainArray。你可以閱讀更多關於多維數組here