2013-03-31 2 views
0

에서 정보 얻기 처음에는 PHP가 처음 이었으므로 어리석은 질문 인 경우 유감스럽게 생각합니다. 두 번째로 유감스럽게도이 제목이 잘못되었습니다.ID 정보

이제 내가하고 싶은 것은 내가하는 게임의 오버레이를 만드는 것입니다. 오버레이에 대한 내 코드가 완벽하게 작동하고 이제 웹 사이트에서 정보를 가져 와서 출력하는 HTML 파일에서 작업하고 있습니다. 웹 사이트의 코드는 다음과 같습니다

<span id="example1">Information I want</span> 
<span id="example2">More Info I want</span> 
... 
<span id="example3">And some more</span> 

이제 내가하고 싶은에 가서 자신의 이름으로 요소를 발견하고 나에게 그 범위 태그의 정보를 제공하는 PHP 스크립트를 만드는 것입니다. 여기에 지금까지, 그것은 그러나 작동하지 않습니다 (놀라운)을 시도하지 사용해보세요 :

//Some HTML here 
<?php 
$doc = new DomDocument; 
$doc->validateOnParse = true; 
$doc->Load('www.website.com'); 

echo "Example1: " . $doc->getElementById('example1') . "\n"; 
?> 
//More HTML 

는 솔직히 말해서, 내가 뭘하는지 단서가 없다. 어떤 사람이 나에게이 일을 올바르게 수행하는 방법의 예를 보여 주거나 올바른 방향으로 나를 가리켜 주면 고맙겠습니다.

+0

, 나는 '코드의 한 행으로 예를 들어 배열에서 ID로 요소를 얻을 수 있도록 예 [] 종료 후, 예 배열을 foreach 문으로 d로드 대신 말리기를 사용하는 것이 좋습니다. 더 안전합니다. –

답변

1

열기 태그와 닫기 태그 사이의 텍스트는 텍스트 노드입니다.

그냥 $doc->getElementById('example1')->nodeValue

+0

응답 해 주셔서 감사합니다. 귀하의 솔루션을 시험해 보았습니다. 문제가 해결되지 않았습니다. 그러나 소스 코드를 살펴보면 다음과 같이 나타납니다. http://i.imgur.com/xFS2nAI.png nodeValue 또는 데이터를 가져 오는 방법은 무엇입니까? 감사! – user123

1

코드가 제대로 표시되는 것처럼 보이지만 몇 가지 빠져 있습니다.

우선, 귀하의 load 전화는 문자 그대로 "www.website.com"이라는 파일을 찾고 있습니다. 원격 파일 인 경우 접두어 http://을 포함해야합니다.

그런 다음 값 (예 : 내용)을 원하지만 노드 자체를 에코하려고합니다.
대신 $doc->getElementById("example1")->nodeValue을 시도하십시오.

그렇게해야합니다. libxml_use_internal_errors(true);을 추가하여 원본 파일의 오류로 인해 PHP 오류가있는 페이지가 손상되지 않도록 할 수 있습니다. 또한 load 대신 loadHTMLFile을 사용하는 것이 좋습니다. 이렇게하면 조작 된 문서에 더 관대해질 수 있습니다.

+0

nodeValue 솔루션을 시도했지만 제대로 작동하지 않았습니다. 사이트의 소스 코드에 내가 설정과 같이입니다 원하는 정보를 찾고 후 : 스팬 번호를 예 1 -> childNodes에 : NodeList를 [1] -> 0 : 텍스트 -> 데이터 : "정보" I inspect 요소의 속성 탭에서 가져 왔습니다. – user123

+0

'nodeValue'가 태그의 내용을 반환하기 때문에 이상합니다 ... –

+0

http://i.imgur.com/xFS2nAI.png 레이아웃이 어떻게 생겼는지, 왜 작동하지 않는지 모르겠습니다. 어느 한 쪽. 데이터 필드에 액세스하는 방법이 있습니까? – user123

1

당신이에서 getElementById를 사용할 수 있습니다 쓰기 :

$ A = $ doc->에서 getElementById ("예 1"); var_dump ($ a); 그래서 당신은 당신이 에코하거나 넣을, 또는 뭔가를보고 싶습니다.

또한 모든 이름을 만들 수 있습니다 내가 HTML 당신은 그냥이에서이기는

관련 문제