【发布时间】:2012-01-31 14:06:11
【问题描述】:
我已经四处寻找这个问题的解决方案,但我找到的每一个,并尝试都不起作用。
我正在尝试从论坛主题中获取 div 的内容。
我尝试使用 preg_match 并且只显示“数组”然后我尝试使用此方法
$html = file_get_contents("http://www.lcs-server.co.uk/forum/index.php/topic,$id_topic");
$dom = new DOMDocument;
$dom->loadHTML($html);
$element = $dom->getElementById("msg_$id_msg");
var_dump($element);
这将显示“object(DOMElement)#1 (0) { }”
$id_topic 和 $id_msg 在此代码上方定义,取自论坛数据库。我确实尝试从论坛数据库中获取消息,但它显示了 BB 代码标签,我希望它能够抓取帖子内容,并以 HTML 格式显示,因为它显示在论坛帖子本身上。
这是我现在正在使用的代码,它给了我“致命错误:无法重新声明 DOMinnerHTML()”
$html = file_get_contents("http://www.lcs-server.co.uk/forum/index.php/topic,$id_topic");
$dom = new DOMDocument;
$dom->loadHTML($html);
$domelement = $dom->getElementById("msg_$id_msg");
foreach ($domelement as $element)
{
echo DOMinnerHTML($element);
}
function DOMinnerHTML($DOMelement)
{
$innerHTML = "";
$children = $DOMelement->childNodes;
foreach ($children as $child)
{
$tmp_dom = new DOMDocument();
$tmp_dom->appendChild($tmp_dom->importNode($child, true));
$innerHTML.=trim($tmp_dom->saveHTML());
}
return $innerHTML;
}
【问题讨论】:
-
当您尝试检索它时,您确定 msg_
存在吗?您的 $id_msg 检索方法可能已损坏。 -
是的,它存在,我用它在我显示它的页面上创建指向论坛中实际帖子的链接。
-
你想做什么?为什么需要在另一个页面上显示论坛帖子?它是在同一个域上,还是在不同的网站上(即您是否在抓取内容)?
-
我做的有点像博客,我在某个论坛版块中发布一个主题,它会在主页上以表格的形式显示该主题,但它没有真的不管我为什么要这样做,我只是在这里发帖寻求有关如何做到这一点的帮助。
标签: php html preg-match