Я пытаюсь вставить <base> HTML <base> сразу после открытия <head> страницы с помощью dom. Я пробовал использовать appendChild который просто вставляет его перед </head> что не хорошо.
Код im использует:
$head = $dom->getElementsByTagName('head')->item(0); $base = $dom->createElement('base'); $base->setAttribute('href', $url); $head->parentNode->insertBefore($base, $head);
Это добавляет <base> перед <head> , который по-прежнему не подходит!
Есть идеи? Пиво для правильного ответа!
$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> .