2011-12-08 10 views
7

私はいくつかの画像を含む大きなhtml文書を持っています。私はdiv.wrappedの中にすべての画像をラップしたいと思います。 DOMDocumentでどうすればいいですか?DOMDocumentを使用してdivですべての画像をラップします

私はappendChildメソッドを見ましたが、最後に要素を追加するだけです。どのようにして1つを中央に挿入し、その中に画像を移動できますか?

答えて

22

私は前にDOMDOCUMENTを使ったことがないが、私はあなたがこのような何かを意味すると思う:

$html = <<<EOF 
<html> 
    <head> 
     <title>:(-> :)</title> 
    </head> 
    <body> 
     <img src="www.com" /> 
     <div class="random"> 
      <img src="www.ru" /> 
     </div> 
    </body> 
</html> 
EOF; 

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

//Create new wrapper div 
$new_div = $dom->createElement('div'); 
$new_div->setAttribute('class','wrapper'); 

//Find all images 
$images = $dom->getElementsByTagName('img'); 

//Iterate though images 
foreach ($images AS $image) { 
    //Clone our created div 
    $new_div_clone = $new_div->cloneNode(); 
    //Replace image with this wrapper div 
    $image->parentNode->replaceChild($new_div_clone,$image); 
    //Append this image to wrapper div 
    $new_div_clone->appendChild($image); 
} 
+0

素晴らしいし。おかげです。 – DevDonkey

+0

すばらしい仲間!あなたは揺れる! –

関連する問題