我试图使用PHP DOM回显HTML:
$doc = new \DomDocument('1.0', 'UTF-8');
$doc->loadHTMLFile("http://www.nu.nl");
$tags = $doc->getElementsByTagName('a');
echo $doc->saveHTML($tags);
这给我一个空白页面。我也尝试过:
$doc = new DOMDocument();
$doc->loadHTMLFile("http://www.nu.nl");
$links = $doc->getElementsByTagName('a');
foreach ($links as $link) {
echo $link->getAttribute('href') . '<br />';
}
这让我把“href”作为纯文本。我已经谷歌搜索了几个小时并尝试了很多东西,但我无法弄清楚如何将HTML输出为HTML。
答案 0 :(得分:2)
你可能想要这样的事情:
$doc = new DOMDocument();
$doc->loadHTMLFile("http://www.nu.nl");
$links = $doc->getElementsByTagName('a');
foreach ($links as $link) {
$thelinks[] = '<a href="' . $link->getAttribute('href') . '">' . trim(preg_replace('/\s{2,}/', '', $link->textContent)) . '</a>';
}
var_dump($thelinks);
答案 1 :(得分:2)
这是一个修复程序,它将添加相对链接的根URL
$pageurl = "http://www.nu.nl";
$html = file_get_contents($pageurl);
$html = str_replace('&','&',$html);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$links = $doc->getElementsByTagName('a');
foreach ($links as $link) {
$myLink = $link->getAttribute('href');
if (substr($myLink,0,7) == 'http://') {
echo '<a href="'.$myLink.'">'.$myLink.'</a><br/>';
} else {
echo '<a href="'.$pageurl.$myLink.'">'.$myLink.'</a><br/>';
}
}
答案 2 :(得分:1)
在foreach中
echo $doc->saveHTML($link);