2013-05-16 274 views
0

所以我使用PHP Simple HTML DOM Parser來獲取網頁的內容。在我知道自己所做的事情是對的之後,我仍然得到了沒有任何發現的錯誤。PHP獲取網頁內容

因此,這裏是我使用的是看是否有什麼實際被抓什麼:

<?php 
include_once('simple_html_dom.php'); 

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

$first_url = "http://www.transfermarkt.co.uk/en/chinese-super-league/startseite/wettbewerb_CSL.html"; // works 

$html = file_get_html($first_url); 
echo "<textarea>Output\n===========\n $html</textarea><br /><br />"; 

$second_url = "http://www.transfermarkt.co.uk/en/chinese-super-league/torschuetzen/wettbewerb_CSL.html"; // does not work? 

$html = file_get_html($second_url); 
echo "<textarea>Output\n===========\n $html</textarea><br />"; 
?> 

沒有錯誤。第二個textarea沒有任何內容。第二個URL似乎並沒有被這個工具所刮...爲什麼?

回答

1

simple_php_dom.php包含:

define('MAX_FILE_SIZE', 600000); 
... 
if (empty($contents) || strlen($contents) > MAX_FILE_SIZE) 
{ 
    return false; 
} 

第二頁是超過672000個字節,所以這個大小檢查失敗。增加這個常數,你應該沒問題。

+0

謝謝。非常。謝謝@Sundar。 – nn2

0

我測試了你的問題,它工作正常。你必須檢查的PHP內存限制它可能是問題

增加你的PHP內存限制,然後再試一次

<?php 

//use this to increase memory limit 
ini_set('memory_limit', '200M'); 

$second_url = "http://www.transfermarkt.co.uk/en/chinese-super-league/torschuetzen/wettbewerb_CSL.html"; // does not work? 

$html = file_get_contents($second_url); 
echo "<textarea>Output\n===========\n $html</textarea><br />"; 
+0

您正在調用'file_get_contents',而不是'file_get_html'。 – Barmar

+0

它不是一個PHP函數。你應該添加file_get_html – Sundar

+0

驗證這個常量define('MAX_FILE_SIZE',600000);這將阻止你的請求,如果它超過了提到的大小,這個常量存在於簡單的dom庫中 – Sundar