2016-06-08 114 views
0

我目前使用的是simple_html_dom.php,這是我第一次覺得我偶然發現了這個問題,我不確定解決方案(現在已經運行了將近兩個小時)PHP無法打開流:HTTP請求失敗! HTTP/1.1 404找不到

Fatal error: Call to a member function find() on boolean in /m/viooz.ac.php on line 12

以上是在我們的頁面上顯示的錯誤,當我們嘗試和刮下請求的站點的a元素查看下面的代碼。

$page = (isset($_GET['p'])&&$_GET['p']!=0) ? (int) $_GET['p'] : ''; 
$html = file_get_html('http://viooz.ac/movies/page/1/');   
foreach($html->find('a') as $element) { 
     print '<br><br>'; 
     echo $url = ''.$element->href; 
     $html2 = file_get_html($url); 
     print '<br>'; 

     $link = $html2->find('.cont_display a',0); 
     print $link = $link->href; 
} 

現在我知道肯定有在網站上<a href""></a>標籤,我們正在尋找它讓怎麼過不管我怎麼改變返回的錯誤..

線75 simple_html_dom.php只是說:下列。

function file_get_html($url, $use_include_path = false, $context=null, $offset = -1, $maxLen=-1, $lowercase = true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT) 
{ 
    // We DO force the tags to be terminated. 
    $dom = new simple_html_dom(null, $lowercase, $forceTagsClosed, $target_charset, $stripRN, $defaultBRText, $defaultSpanText); 
    // For sourceforge users: uncomment the next line and comment the retreive_url_contents line 2 lines down if it is not already done. 
    $contents = file_get_contents($url, $use_include_path, $context, $offset); 
    // Paperg - use our own mechanism for getting the contents as we want to control the timeout. 
    //$contents = retrieve_url_contents($url); 
    if (empty($contents) || strlen($contents) > MAX_FILE_SIZE) 
    { 
    return false; 
    } 
    // The second parameter can force the selectors to all be lowercase. 
    $dom->load($contents, $lowercase, $stripRN); 
    return $dom; 
} 

WARNING: Don't view the content destination unless you have an ad-block you will get loads of popups.

編輯:即使在更改URL後返回相同的問題

Fatal error: Call to a member function find() on boolean in /m/viooz.ac.php on line 18

  • 我覺得雖然我已經想通一些東西,加載頁面時,它會創建一個隨機的div其觸發彈出窗口,除非你刪除該div或觸發它的其他元素不會出現..這可能是什麼原因導致我們的問題?
+1

但是... http://viooz.ac/movies/page/1確實給了404.它確實沒有找到。所以你的錯誤是預期的。有什麼問題? – jszobody

+0

@jszobody即使我更正了URL http://viooz.ac/movies/page/1/,我可以確認它確實存在,但在查找「a」元素時此錯誤仍然保持不變。 – Placeholder

+0

您試圖訪問的頁面正在拋出404 - 服務器找不到頁面。即使它在瀏覽時顯示頁面,它也會發送404錯誤而不是200 OK消息。 – aynber

回答

1

當我打開你的鏈接(在Chrome隱身模式,啓用adblocker)它確實給404 。頁面未找到,所以您的錯誤是預期的。

看起來你缺少一個斜線。添加最後的斜槓到您的網址,它的作品。

所以:

$html = file_get_html('http://viooz.ac/movies/page/'.$page.'/'); 

如果你看一下在Chrome view-source:http://viooz.ac/movies/page/1/,你會看到HTML代碼,我相信你會看到。

我確認file_get_contents('http://viooz.ac/movies/page/1/');正在爲我成功檢索HTML。

+0

這解決了我的問題,非常感謝。 – Placeholder

0

你需要他們的URL一個斜線,否則你將得到404頁

$html = file_get_html('http://viooz.ac/movies/page/'.$page.'/'); 
+0

匿名downvote的任何理由? –

相關問題