Tutorial :Insert created element at start of html tag using PHP DOM



Question:

I'm trying to insert an HTML <base> tag immediately after the opening <head> tag of a page using dom. I've tried using appendChild which just inserts it before the </head> which is no good.

Code im using:

$head = $dom->getElementsByTagName('head')->item(0);  $base = $dom->createElement('base');  $base->setAttribute('href', $url);  $head->parentNode->insertBefore($base, $head);  

This inserts the <base> tag before the <head>, which is still no good!

Any ideas? Beer for the correct answer!


Solution:1

$head = $dom->getElementsByTagName('head')->item(0);  $base = $dom->createElement('base');  $base->setAttribute('href',$url);    if ($head->hasChildNodes()) {      $head->insertBefore($base,$head->firstChild);  } else {      $head->appendChild($base);  }  

If the <head> element already has children, it inserts the <base> element before <head>'s first child. If <head> has no children, it just appends it to <head>.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »