Я пытаюсь вставить <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>
.