2011-05-02 3 views
0

PHP를 사용하여 외부 웹 사이트의 콘텐츠를 가져 왔습니다.문자열을 PHP file_get_contents의 출력으로 대체 하시겠습니까?

모든 링크를 절대적으로 만들 수 있도록 출력에서 ​​문자열을 찾아 교체하는 것이 가능한지 알고 싶습니다.

나는 "/와 '/에"$ URL이/

가 그렇게 할 수 있다면, 나는 나머지 작업을 수행하는 방법을 알아낼 수 변환해야합니다. 그래도 가능할지 모르겠다.

감사

간단한 문자열 교체

답변

0

는, str_replace() 사용 예

$html = str_replace(array("'/", '"/'), array("'$url/", '"' . $url . '/'), $html); 

좀 더 강력한 솔루션 후, 나는있는 DOMDocument로 HTML 문자열을로드 좋을 것하는 경우 , href으로 모든 태그를 반복하고 /으로 시작하고 HTML을 작성하기 전에 각 태그의 속성을 변경하십시오.

$doc = new DOMDocument(); 
$doc->loadHTML($html); 

$xpath = new DOMXPath($doc); 
$anchors = $xpath->query('//*[starts-with(@href, "/")]'); 

foreach ($anchors as $anchor) { 
    $href = $anchor->getAttribute('href'); 
    $anchor->setAttribute('href', $url . $href); 
} 
$html = $doc->saveHTML(); 

src 속성이있는 태그에 대해서도 동일한 작업을 수행하는 것이 좋습니다.

-1

DOMDocument 구문 분석이 가장 강력하지만 preg_replace()을 사용할 수도 있습니다.

+0

방금 ​​추가 정보를 제공하고 다운 투표했습니다. 수락 된 답변 자체는 str_replace를 언급하는데, 이것은 똑같은 것이고, 공백을 다루고 싶다면 덜 강력합니다. –

관련 문제