PHP解析HTML页面并输出某个div

时间:2017-02-12 17:29:15

标签: php html parsing

所以我一直试图在我的网站中嵌入一个网站的一部分由于安全原因我无法透露我试图嵌入的网站所以为了这个例子的目的我将使用bbc.co.英国。

以下是php / html代码:

<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

</head>
<body>
<?php
$page = file_get_contents('http://www.bbc.co.uk/');
$doc = new DOMDocument();
$doc->loadHTML($page);
$divs = $doc->getElementsByTagName('div');
foreach($divs as $div) {
    // Loop through the DIVs looking for one withan id of "content"
    // Then echo out its contents (pardon the pun)
    if ($div->getAttribute('id') === 'orb-footer') {
         echo $div->nodeValue;
    }
}
?>  
</body>

<footer>

</footer>
</html>

然而,当我加载页面时,我得到一个显示php代码的页面。请问有谁能告诉我哪里出错了。

谢谢!!

1 个答案:

答案 0 :(得分:2)

这是解决像这样的PHP问题的一般指南,它绝不是直接或特定的&#34; drop-in&#34;这个答案的解决方案

加载页面后检查浏览器上加载的来源

如果您要加载的浏览器上的页面为空白,请尝试在Chrome上使用 Ctrl + U 查看来源,或者右键单击页面上的任意位置并选择查看来源的选项。

源是空的吗?那必须意味着错误来自PHP /服务器。

源是完全/部分加载的吗?这意味着错误必须在您编写的PHP代码中。请尝试改为$doc->loadHtml( htmlentities($page) )

使用PHP调试器,例如XDebug

现在很容易使用PHP调试器,因为它可以很容易地与大多数PHP IDE集成。尝试逐行逐步执行代码并检查问题所在。