Insert created element at the beginning of html tag with PHP DOM

I am trying to insert an HTML tag <base>right after opening a <head>page tag with dom. I tried using appendChildone that simply inserts it in front of </head>which does not fit.

The im code uses:

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

Inserts a tag <base>in front <head>, which is still not good!

Any ideas? Beer for the right answer!

+3
source share
1 answer
$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);
}

<head> , <base> <head> . <head> , <head>.

+7

Source: https://habr.com/ru/post/1753170/


All Articles