Php 从DOM获取HTML并将其存储在MySql中

Php 从DOM获取HTML并将其存储在MySql中,php,mysql,dom,Php,Mysql,Dom,我试图从页面获取某个div的内容,并将其存储在我的数据库中。我做了以下工作: $html = file_get_contents($url); $dom = new SmartDOMDocument(); $dom->loadHTML($html); $div_tags = $dom->getElementsByTagName('div'); foreach ($div_tags as $element) { if(strpos($element->getAtt

我试图从页面获取某个div的内容,并将其存储在我的数据库中。我做了以下工作:

$html = file_get_contents($url);
$dom = new SmartDOMDocument();
$dom->loadHTML($html);    
$div_tags = $dom->getElementsByTagName('div');
foreach ($div_tags as $element) {
    if(strpos($element->getAttribute('itemprop'), 'description') !== false)
        $description = $element->nodeValue;
}
我使用它是因为它比
DOMDocument
更好地处理UTF-8

现在,这将给我元素的
文本
,不带标签。我试过了,它确实给了我带标签的文本。然而,当我试图将它存储在我的数据库中时,我却做不到

是否有更好的方法从元素中获取带有标记的
utf-8文本并将其正确存储在db中

编辑: insert语句非常简单:

$q = "INSERT INTO `MyTable`.`content` (`description`) VALUES ('$description')";
$r=mysql_query($q); 
var_dump($r);

尝试var\u dump-ing$元素,查看它是否具有除nodeValue之外的其他属性。还应该有HTMLvalue、getHTML或其他类似属性。

尝试使用textContent而不是nodeValue。不要忘记转义(我假设在本例中使用mysql\u real\u escape\u string)

当我试图将它存储在数据库中时,我不能为什么?有错误吗?发生了什么?我尝试了
var\u dump()
结果,结果是
bool(false)
。没别的了。看看你的代码,你有一个foreach,一个if和元素,你想捕获多个项目还是只捕获一个?如果是这样的话,在if之后休息一下,离开foeach,因为它可能会碰到另一个空的元素。你是对的。但我知道我买对了东西<代码>$description
正在返回预期结果。能否添加负责DB操作的代码?我尝试了。它返回
对象(domeElement)#8(0){}
。古怪的显然,
textContent
nodeValue
没有区别。标签被移除。