2014-09-04 15 views
0

我通過PHP中的CURL(簡單html dom)從網站獲取內容。CURL在PHP中獲取兩個html頁面

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$output = curl_exec($ch); 
echo str_get_html($output); 

它給我的HTML頁面

<html><head><title>Object moved</title></head><body> <h2>Object moved to <a href="/LocationSelection.aspx">here</a>.</h2> </body></html> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"......... 

我不希望得到第一html.I想要得到的HTML的頂部,然後其餘的這個網站只能從<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

開始我如何用CURL來做到這一點?還有其他方法嗎?

編輯:我們可以在捲曲的延遲,所以通過AJAX是整個HTML載入第一和then.Like我們使用睡眠(10)

+0

你需要得到正確的URL – Satya 2014-09-04 07:20:19

+0

URL是正確的,但首先它找到位置,然後自動重定向...當我運行網址在瀏覽器中它工作正常 – user3244721 2014-09-04 07:21:44

+0

爲什麼你需要這個?你想通過這個解決什麼問題? – Yang 2014-09-04 07:23:32

回答

1

要恢復第二HTML,所以只需將它添加到curl選項:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

然後你會恢復Locations.aspx沒有Object moved.....

0

你的要求:

novocinemas.com/Home.aspx 

我剛跑它在Chrome中,獲得了302種狀態,然後重定向happend:

Home.aspx GET 302 text/html Other 260 B 1.25 s 
LocationSelection.aspx GET 200 text/html http://novocinemas.com/Home.aspx 2.2 KB 705 ms 

感謝 Satyadeep

+0

此網址正在工作https:// novocinemas.com/ – user3244721 2014-09-04 07:37:47

+0

先生,據我所知,有一個重定向發生,這是從日誌 – Satya 2014-09-04 07:41:29

+0

明顯,那麼解決方案是什麼?是否有任何其他方式來獲取其內容? – user3244721 2014-09-04 07:42:56

0

您從捲曲接收輸出後,怎麼樣,如果你用下面的代碼替換空字符串的第一個html。

$pattern = '/<html>.*<\/html>/i'; 
$replace = preg_replace($pattern, '', $outputFromCurl); 

echo htmlentities($replace); 

然後你會得到第二HTML

希望它可以幫助