2010-03-09 5 views
3

PHP가있는 페이지에서 HTML 코드를 가져오고 싶습니다. 그래서 이렇게 :"JavaScript enabled"로 HTML을 가져 오는 방법은 무엇입니까?

$url = 'http://en.wikipedia.org/wiki/New_York_City'; 
$html = file_get_html($url); 

문제는 위키 백과는 PHP 요청에 <script> 태그를 전송하지 않습니다, 그래서는 자바 스크립트를 표시하지 않습니다. Wikipedia에서 "요청자"에게 JavaScript가 활성화되어 있지 않아서 <script> 태그를 보내지 않았기 때문입니다.

내 PHP가 JavaScript가 활성화되었음을 Wikipedia에 알리려면 어떻게해야합니까??

나는 스트림 컨텍스트에 대해 들었지만, 어떻게 설정 해야할지 모르겠다. JavaScript가 활성화되어있다..

+0

** file_get_html **는 기본 PHP 라이브러리에 없습니다. 이 기능을 어디에서 가져 왔습니까? –

+0

예, 언급하는 것을 잊었습니다. file_get_html은 simple_html_dom의 함수입니다. – Davide

+0

javascript 가능 브라우저 용 사용자 에이전트 가짜 시도 – symcbean

답변

1

symcbean 덕분에 해결책이 있습니다.

ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9'); 

을 그리고 지금은 corret 스크립트 블록을 보내는 것 :

내가 덧붙였다.

)

-5

Iframe을 사용할 수 있습니다.

jQuery와 같은 것을 사용하여 페이지 (또는 페이지의 특정 부분)를 웹 사이트로 가져올 수도 있습니다. file_get_html() 기능은 <script> 블록을 벗겨처럼 내가 어떤 요청 헤더없이 피들러에서 GET /wiki/Main_Page HTTP/1.1를 요청했는데, 그것은 응답 <script> 블록을 반환했기 때문에

+5

와우, 일부 사람들은 정말로 jquery가 모든 것에 대한 해답이라고 생각합니다. 그는 PHP 솔루션을 찾고 있다고 명시합니다. –

+0

또한 자바 스크립트만으로 다른 페이지를 긁을 수는 없습니다 ... http://en.wikipedia.org/wiki/Same_origin_policy – Domenic

1

그것은 보인다.

+0

file_get_contents와 동일하게 작동합니다. 사용자 에이전트에 따라 달라질 수 있습니까? – Davide

+0

@DavidDev : user-agent 헤더없이 Fiddler에서 시도했지만 여전히 '

관련 문제