2012-10-12 4 views
0

이것이 가능한지 확실하지 않지만 내 웹 사이트의 일부 HTML 파일에서 모든 앵커 태그 링크를 추출하려고합니다. 현재 HTML 파일 링크 배열을 만드는 몇 개의 디렉토리와 하위 디렉토리를 스캔하는 PHP 스크립트를 작성했습니다. 그 코드는 다음과 같습니다.다중 HTML 파일에서 앵커 태그 가져 오기

$di = new RecursiveDirectoryIterator('Migration'); 
$migrate = array(); 
foreach (new RecursiveIteratorIterator($di) as $filename => $file) { 
if (eregi("\.html",$file) || eregi("\.htm",$file)) { 
$migrate[] .= $filename; 
} 
} 

이 방법은 필요한 HTML 파일 링크를 성공적으로 생성합니다. 예 :

Migration/administration/billing/Billing.htm 
Migration/administration/billing/_notes/Billing.htm.mno 
Migration/administration/new business/_notes/New Business.htm.mno 
Migration/administration/new business/New Business.htm 
Migration/account/nycds/_notes/NYCDS Index.htm.mno 
Migration/account/nycds/NYCDS Index.htm 

더 많은 링크가 있지만 아이디어가 있습니다. 다음 부분은 내가 붙어있는 부분이다. 나는 for 루프가 각 배열 요소를 반복하고, 파일을 열고, 링크를 추출한 다음 어딘가에 저장해야한다고 생각했다. 이 과정에 대해 어떻게 생각하는지 모르겠습니다. 나는이 질문을 Google로하려했지만 내가하고 싶은 일과 일치하는 결과를 얻는 것처럼 보지 못했습니다. 여기에 for 루프가 있습니다.

var obj = <?php echo json_encode($migrate); ?>; 
for(var i=0;i< obj.length;i++){ 
// alert(obj[i]); 
} 

위의 코드는 자바 스크립트로 작성되었습니다. 내가 읽고있는 것에서는 자바 스크립트를 사용해서는 안되지만 PHP를 계속 사용해야 할 것 같습니다. 나는 나의 다음 단계가 있어야하는 것에 혼란 스럽다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면, 나는 정말로 감사 할 것입니다. 시간 내 주셔서 대단히 감사합니다.

답변

1

사용 DOMDocument::getElementsByTagName 모든 <a> 태그를

http://www.php.net/manual/en/domdocument.getelementsbytagname.php

예를 검색 할

$doc = new DOMDocument(); 
$doc->loadHTMLFile("filename.html"); 
$anchors = $doc->getElementsByTagName('a'); //retrieve all anchor tags 
foreach ($anchors as $a) { //loop anchors 
    echo $a->nodeValue; 
} 
관련 문제