2014-09-04 1 views
0

PHP (단순 html dom)의 CURL을 통해 웹 사이트의 컨텐츠를 가져오고 있습니다.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); 

그것은 나에게 단지 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

부터 내가 먼저 html.I을받지 않으

<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을 얻을 할 페이지의 HTML의 다음 상단과 나머지에이 HTML을 제공 CURL로 어떻게 할 수 있습니까? 다른 방법이 있습니까?

편집 : 아약스를 통해 그 전체 HTML 부하가 제 then.Like 우리가 수면 (10)를 사용하고, 그래서 우리는 CURL의 지연을 만들 수

+0

당신이 올바른 URL – Satya

+0

URL이 정확 얻을 필요가 도움이되기를 바랍니다하지만 먼저 위치를 찾아 자동으로 리디렉션 ... 내가 URL을 실행할 때 두 번째 HTML을 얻을 것이다 브라우저에서 제대로 작동합니다. – user3244721

+0

왜이 기능이 필요합니까? 이것으로 어떤 문제를 해결하려고합니까? – Yang

답변

1

당신은 그래서 그냥 curl 옵션이 추가, 두 번째 HTML을 복구 할 : 당신이 CURL에서 출력을 수신 한 후, Object moved.....

0

요청 :

novocinemas.com/Home.aspx 

I 다만 크롬을 실행하고 (302 개) 상태를 가지고 다음 리디렉션 앞으로 일어날 :

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

이 URL은 https : //를 사용하고 있습니다. novocinemas.com/ – user3244721

+0

내가 말했듯이, 리디렉션이 발생하고 있으며 이는 로그 – Satya

+0

에서 분명합니다. 해결책은 무엇입니까? 그 내용을 가져 오는 다른 방법이 있습니까? – user3244721

0

없이

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

는 그런 다음 Locations.aspx을 복구하는 방법에 대한 당신의 경우 아래의 코드를 사용하여 첫 번째 html을 빈 문자열로 바꿉니다.

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

echo htmlentities($replace); 

은 그럼 당신은

그것이

관련 문제