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

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

以下是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代码的页面.请问有谁能告诉我哪里出错了.

谢谢!!

最佳答案 这是解决像这样的PHP问题的一般指南,它绝不是针对此答案的直接或特定“插入式”解决方案

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

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

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

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

使用PHP调试器,如XDebug

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

点赞