Я пытаюсь вставить код html в другой код html, используя DOMNode. Чтобы уточнить, у меня есть этот html в файле php, который содержит base_structure:
<!DOCTYPE html>
<html <?php echo "lang=\"".get_lang_code_map()[$_SESSION["language_id"]]."\""; ?>>
</html>
И у меня есть другой файл, который также содержит html content:
<head>
<meta charset="utf-8"/>
<title>Stack Overflow</title>
</head>
Хорошо, имея это в виду, это функция, которую я создаю, чтобы получить то, что я ищу, но безуспешно:
function view_new_design($view_name,$data=""){
$open_structure = "app/views/open_structure.php";
$header = "app/views/header3.php";
$navbar = "app/views/navbar.php";
$path = "app/views/".$view_name.".php";
$footer = "app/views/footer2.php";
$close_structure = "app/views/close_structure.php";
ob_start();
require_once($open_structure);
$os_result = ob_get_contents();
ob_end_clean();
$doc = new DOMDocument();
$doc -> loadXML ($os_result);
$xpath = new DOMXpath($doc);
$structure = $xpath -> query('/html');
ob_start();
require_once($header);
$head_result = ob_get_contents();
ob_end_clean();
$doc2 = new DOMDocument();
$doc2 -> loadXML ($head_result);
// echo $doc2 -> saveXML();
$node = $doc2 -> getElementsByTagName('head') -> item(0);
$aaa = $doc -> importNode($node,true);
// var_dump($aaa);
if (!is_null($structure)) {
$doc -> appendChild($aaa);
}
header('content-type: text/plain');
// echo $doc2 -> saveXML();
// echo $doc -> saveXML();
// echo var_export($os_result,true);
echo "\nNode => ".var_export($node,true)."\n";
echo "\nDoc => ".var_export($doc -> saveXML(),true)."\n";
echo "\nDoc2 => ".var_export($doc2 -> saveXML(),true)."\n";
// echo var_export($structure,true);
foreach ($structure as $element) {
// echo "\t[". $element->nodeName. "]\n";
$nodes = $element->childNodes;
foreach ($nodes as $node) {
// echo "\tHijos =>".$node->nodeName. "\n";
}
}
return '';
}
Результат такой: введите описание изображения здесь
Я хочу знать, как я могу вставить тег заголовка в тег html, а также почему узел возвращает мне массив void.
Спасибо впереди руки.