2011-12-08 12 views
7

का उपयोग कर सभी चित्र मैं एक बड़ी HTML दस्तावेज़, कई छवियों के साथ की है। मैं div.wrapped अंदर सभी छवियों को रैप करने के लिए चाहते हैं। मैं कैसे DOMDocument के साथ ऐसा होगा?लपेटें एक div DOMDocument

मैंने appendChild विधि देखी है, लेकिन यह केवल अंत में तत्वों को जोड़ती है। मैं बीच में एक कैसे सम्मिलित कर सकते हैं, और फिर इसे अंदर छवि को स्थानांतरित?

उत्तर

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

अद्भुत भाई! आपने धमाल मचाया! –