我正在尝试从页面获取某个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);
答案 0 :(得分:0)
尝试 var_dump -ing $元素,看看它是否还有 nodeValue 之外的其他属性。还应该有 HTMLvalue ,getHTML或其他类似属性。
答案 1 :(得分:0)
尝试使用textContent而不是nodeValue。并且不要忘记转义(我假设在这种情况下使用mysql_real_escape_string)