2012-04-03 3 views
1

를 '비행'에 이러한 변경 나는 HTML 문자열 내의 모든 A HREF 링크에 도착하고 모든 링크를 변환하고 싶습니다 :SimpleHTMLDom 라이브러리를 사용하여 모든 A HREF 링크를 가져 오기 및

<a href='www.google.com'>Google</a> 

다음과 같이 바뀔 것입니다 ...

<a href='www.mysite.com/link.php?URL=www.google.com'>Google</a> 

아무도 내가 이것을하는 방법을 제안 할 수 있습니까?

<?php 

require_once ('simple_html_dom.dom.php'); ?>

+1

같은 것을 봤어, 내가보기 엔 모두 덤핑 simple_html_dom을 권 해드립니다. 실제로 여기에 PHP segfault를 생성하고 PHP의 DOM 구성 요소의 1/5 속도로 5 배의 메모리를 사용하고 실행합니다. (그건 과장이 아니야. 내가 몇 가지 테스트 스위트를 따라 달렸어. 벤치 마크가 아닌 실제 시간. : P) – cHao

답변

5

// load the class 
$html = new simple_html_dom(); 

// load the entire string containing everything user entered here 

$string = "<html><body><base href='http://www.site.biz/clients/g/'><a href='www.google.co.uk'>Google</a><a href='http://www.yahoo.co.uk'>Yahoo</a></body></html>"; 
$return = $html->load($string); 

$links = $html->find('a'); 

foreach ($links as $link) 
{ 
    var_dump($link); 
} 

당신이 참고로

$links = $html->find('a'); 

foreach ($links as $link) 
{ 
    if(isset($link->href)) 
    { 
     $link->href = 'www.mysite.com/link.php?URL=' . $link->href; 
    } 
} 

$newHTML = $html->save(); 

// $newHTML now contains the modified HTML 
관련 문제