2012-12-20 83 views
0

我正在構建一個web爬蟲。它可以找到頁面上的所有鏈接以及它們的標題和元描述等等。它確實很好。然後我寫了一個數組,它給出了我想要的鏈接的所有啓動URL。因此,如果它抓取一個鏈接,並且它的url以數組中的任何值開始,那麼這個鏈接會提供啓動的url,插入到$ news_stories中。print_r聲明似乎不起作用

唯一的問題是它似乎沒有插入到它們中。該頁面返回空白,現在它說,array_intersect語句想要一個數組,我沒有規定我有一個數組。

總之,我很努力去理解我的代碼不工作的原因以及爲什麼沒有插入想要的URL。

$bbc_values = array(
    'http://www.bbc.co.uk/news/health-', 
    'http://www.bbc.co.uk/news/politics-', 
    'http://www.bbc.co.uk/news/uk-', 
    'http://www.bbc.co.uk/news/technology-', 
    'http://www.bbc.co.uk/news/england-', 
    'http://www.bbc.co.uk/news/northern_ireland-', 
    'http://www.bbc.co.uk/news/scotland-', 
    'http://www.bbc.co.uk/news/wales-', 
    'http://www.bbc.co.uk/news/business-', 
    'http://www.bbc.co.uk/news/education-', 
    'http://www.bbc.co.uk/news/science_and_enviroment-',   
    'http://www.bbc.co.uk/news/entertainment_and_arts-', 
    'http://edition.cnn.com/' 
); 

// BBC Algorithm 
foreach ($links as $link) { 
    $output = array(
     "title"  => Titles($link), //dont know what Titles is, variable or string? 
     "description" => getMetas($link), 
     "keywords" => getKeywords($link), 
     "link"  => $link     
    ); 

    if (empty($output["description"])) { 
     $output["description"] = getWord($link); 
    } 
} 

$new_stories = array(); 

foreach ($output as $new_array) { 
    if (array_intersect($output['link'], $bbc_values) == true) { 
     $news_stories[] = $new_array; 
    } 

    print_r($news_stories); 
} 
+0

嘗試使用'var_dump'而不是'print_r',它給出了更多有用的信息 – Stu

+3

「print_r不起作用」是一個荒謬的假設。相信語言,並尋找實際的錯誤.. –

回答

0

您decalred數組作爲$ new_stories和打印$ news_stories .....差異是「S」

檢查代碼是否是此循環或內不來,我不這麼認爲。 ..

if (array_intersect($output['link'], $bbc_values) == true) { 
    echo 'here'; 
} 
0

當使用返回參數,這個函數使用內部輸出緩衝,因此它不能在ob_start()回調函數內部使用。