2013-06-15 5 views
0

PHP 페이지가 있습니다. 그것은 페이지에 링크의 모든 hrefs를 가져 와서 다른 것으로 변경 한 다음 페이지를 표시하기로되어 있습니다. 그러나 그렇게하지는 않습니다. 여기 내 코드입니다 :setAttribute가 아무 것도하지 않습니다.

$returndata = file_get_contents($url); 
$doc= new DOMDocument(); 
@$doc->loadHTML($returndata); 
foreach($doc->getElementsByTagName('a') as $anchor) 
{ 
     $href=$anchor->getAttribute('href'); 
     $splited=str_split($href); 
     $hashed=implode("*",$splited); 
     $anchor->setAttribute("href", $hashed); 
} 
echo $returndata; 

하지만 setAttribute는 아무것도하지 않습니다. 그런 다음 그 전에 이것을 추가하려고 시도했습니다.

$anchor->removeAttribute("href"); 

그러나 변경 사항은 없습니다.

+0

그래서 '객체'의 속성을 변경하고 '문자열'에 표시하려고합니까? –

+1

관련 문서 : ['DOMDocument'] (http://php.net/manual/en/class.domdocument.php), ['DOMElement'] (http://www.php.net/manual/en/class .domelement.php), ['DOMElement :: setAttribute'] (http://php.net/manual/en/domelement.setattribute.php) –

+1

'$ returndata'를 반향하는 것은 처리중인 HTML 문서와 아무 관련이 없습니다 . 이전의 변경되지 않은 문자열 데이터입니다. DOMDocument를 출력해야합니다. –

답변

1

예제에서 $returndata을 반향하는 것은 처리중인 HTML 문서와 아무 관련이 없습니다. 이전의 변경되지 않은 문자열 데이터입니다.

DomDocument::saveHTML을 사용하여 조작중인 실제 DOMDocument을 출력해야합니다.

관련 문제