PHP를 사용하여 외부 웹 사이트의 콘텐츠를 가져 왔습니다.문자열을 PHP file_get_contents의 출력으로 대체 하시겠습니까?
모든 링크를 절대적으로 만들 수 있도록 출력에서 문자열을 찾아 교체하는 것이 가능한지 알고 싶습니다.
나는 "/와 '/에"$ URL이/
가 그렇게 할 수 있다면, 나는 나머지 작업을 수행하는 방법을 알아낼 수 변환해야합니다. 그래도 가능할지 모르겠다.
감사
간단한 문자열 교체PHP를 사용하여 외부 웹 사이트의 콘텐츠를 가져 왔습니다.문자열을 PHP file_get_contents의 출력으로 대체 하시겠습니까?
모든 링크를 절대적으로 만들 수 있도록 출력에서 문자열을 찾아 교체하는 것이 가능한지 알고 싶습니다.
나는 "/와 '/에"$ URL이/
가 그렇게 할 수 있다면, 나는 나머지 작업을 수행하는 방법을 알아낼 수 변환해야합니다. 그래도 가능할지 모르겠다.
감사
간단한 문자열 교체는, 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
속성이있는 태그에 대해서도 동일한 작업을 수행하는 것이 좋습니다.
DOMDocument 구문 분석이 가장 강력하지만 preg_replace()을 사용할 수도 있습니다.
방금 추가 정보를 제공하고 다운 투표했습니다. 수락 된 답변 자체는 str_replace를 언급하는데, 이것은 똑같은 것이고, 공백을 다루고 싶다면 덜 강력합니다. –