2012-09-09 58 views
2

我試圖從一個頁面讀取鏈接,打印URL,轉到該頁面,然後閱讀下一頁上的鏈接,打印該網址,轉到該網頁(依此類推...)。調用成員函數find()在非對象simpleHTMLDOM上

我所做的只是讀取URL並將其作爲參數傳遞給get_links()函數,直到沒有更多的鏈接。

這是我的代碼,但它拋出:

Fatal error: Call to a member function find() on a non-object. 

任何人都知道如何解決這一問題?

<?php 
$mainPage = 'https://www.bu.edu/link/bin/uiscgi_studentlink.pl/1346752597?ModuleName=univschr.pl&SearchOptionDesc=Class+Subject&SearchOptionCd=C&KeySem=20133&ViewSem=Fall+2012&Subject=&MtgDay=&MtgTime='; 

get_links($mainPage); 

function get_links($url) { 
    $data = new simple_html_dom(); 
    $data = file_get_html($url); 

    $nodes = $data->find("input[type=hidden]"); 
    $fURL = $data->find("/html/body/form"); 
    $firstPart = $fURL[0]->action . '<br>'; 

    foreach ($nodes as $node) { 
     $val = $node->value; 
     $name = $node->name; 
     $name . '<br />'; 
     $val . "<br />"; 

     $str1 = $str1 . "&" . $name . "=" . $val; 
    } 
    $fixStr1 = str_replace('&College', '?College', $str1); 
    $fixStr2 = str_replace('Fall 2012', 'Fall+2012', $fixStr1); 
    $fixStr3 = str_replace('Class Subject', 'Class+Subject', $fixStr2); 

    $fixStr4 = $firstPart . $fixStr3; 
    echo $nextPageURL = chop($fixStr4); 
    get_links($nextPageURL); 
} 
?> 
+0

此外,我得到$ nextPageURL正確回顯,所以我知道代碼的作品,但只爲第一頁。 – wandersolo

+0

這聽起來似乎很熟悉[這個問題...](http://stackoverflow.com/questions/12335394/call-toa-a-member-function-find-on-a-non-object-when-inserting- data-using-php-m/12335425#12335425) – David

+0

它會引發相同的錯誤,但我在這種情況下使用了file_get_html()方法。另外我認爲它是一個遞歸問題,但我不確定? – wandersolo

回答

0

好了,所以我用的是load->file()功能的地方在我的代碼,並沒有看到它,直到我真正通過它刮掉。最後有一個運行腳本:)關鍵是使用file_get_html而不是使用load->file()函數將網頁加載爲對象。

相關問題