2010-06-28 5 views
4

PHP libcurl을 사용하여 페이지를로드하고 있습니다. 이제이 페이지의 < title> 태그의 콘텐츠와 다른 정보를 얻으십시오. SimpleXML을 사용하여 구문 분석을 시도했지만 페이지가 유효한 XML이 아니기 때문에 운이 좋지 않습니다. < title> tag의 내용을 쉽게 얻을 수있는 다른 방법을 제안 해 주시겠습니까? 고맙습니다.페이지의 <title> 태그 내용을 XML로 구문 분석 할 수없는 경우 어떻게 얻을 수 있습니까?

답변

3

DOMDocument::loadHTML을 사용할 수 있습니다.

이 "제목"메아리 :

<?php 

$doc = <<<HTML 
<html> 
<head> 
<title>The title</title> 
<body> 
hhhhhh 
HTML; 

libxml_use_internal_errors(true); 
$d = new DOMDocument; 
$d->loadHTML($doc); 
$ts = $d->getElementsByTagName("title"); 
if ($ts->length > 0) { 
    echo $ts->item(0)->textContent; 
} 
+0

작동하지만 다음과 같이 많은 오류가 발생합니다. http://www.peeep.us/31a386c6. 너무 많은 실수를 피할 수있게 도와 주시겠습니까? –

+0

죄송합니다. 잘못된 링크! 여기에 맞는 것이 있습니다 : http://clip2net.com/clip/m24988/1277753812-clip-102kb.png –

+0

@pop http://www.php.net/manual/en/function.libxml-use-internal- errors.php 예제에서 그 함수에 대한 호출을 추가했습니다. – Artefacto

0

당신은 페이지의 제목을 얻기 위해이 스크립트를 사용할 수 있습니다 사용할 수 있습니다.

# Script Title.txt 
var str page, content 
cat $page > $content 
stex -r -c "^<title&</title&\>^" $content 

이 작은 코드를 C : /Scripts/Title.txt 파일에 저장하십시오. 코드는 비트 스크립트로되어 있습니다. 비트 스크립트를 시작하고이 명령을 입력하십시오.

script "C:/Scripts/Title.txt" page("http://stackoverflow.com/questions/3135488/how-can-i-get-pages-title-tags-content-if-it-cant-be-parsed-as-xml") 

이 페이지의 제목 (보고있는 페이지)이 표시됩니다. 다른 URL 또는 로컬 파일 경로를 page()의 값으로 사용하십시오. 큰 따옴표를 사용하십시오. 내가이 명령을 실행하면, 나는 그것이 가 XML로 구문 분석 할 수없는 경우

이 어떻게 페이지의 < 제목 > 태그의 내용을 얻을 수있어? - 스택 오버플로

이 스크립트는 실행 파일 또는 배치 파일에서 호출 할 수 있습니다.

0

야후의 YQL 콘솔을 사용해보세요. 거의 모든 URL을 쿼리하고 결과를 XML로 다시 요청할 수 있습니다. xpath를 추가하여 범위를 좁힐 수도 있습니다.

http://developer.yahoo.com/yql/console/

어쩌면 당신은 컬을 사용하여이 서비스를 호출 할 수 있습니다. 그것은 꽤 편리합니다.

관련 문제