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

时间:2013-08-03 20:59:52

标签: 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->getAttribute('itemprop'), 'description') !== false)
        $description = $element->nodeValue;
}

我使用SmartDOMDocument因为它比DOMDocument更好地处理UTF-8。

现在,这将为text of the element 提供标签。我试过了this solution,它确实给了我带标签的文字。但是,当我试图将它存储在我的数据库中时,我不能!

有没有更好的方法从元素中获取utf-8 text with the tags并将其正确存储在数据库中?

修改 insert语句非常简单:

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

2 个答案:

答案 0 :(得分:0)

尝试 var_dump -ing $元素,看看它是否还有 nodeValue 之外的其他属性。还应该有 HTMLvalue ,getHTML或其他类似属性。

答案 1 :(得分:0)

尝试使用textContent而不是nodeValue。并且不要忘记转义(我假设在这种情况下使用mysql_real_escape_string)