HTML:
<head>
<link rel="preload" href="/_next/list.js" as="script">
<!-- ... other link elemens -->
<style data-styled="" data-styled-version="4.2.0"></style>
</head>
任务:
从 head 中提取所有链接和样式标签,并使用主机路径更新 href 属性。
创建新的 html 字符串元素(一段 html),我们可以在我们的主 html 模板中输出它。
PHP:
$dom = new DOMDocument();
$dom->loadHTML($stringBody);
$xpath = new DOMXPath($dom);
$headItems = $xpath->query("//head/link[@rel='preload' or @rel='stylesheet'] | //head/style");
// now I want to create html string with updated attributes, but I'm lost here..
$head = new DOMDocument();
foreach ($headItems as $headNode) {
$headNode->setAttribute('href', $host . $headNode->getAttribute('href'));
}
$links = $head->saveHTML($headNode);
echo $links; // echo html link tags
拉丁的传说