Php 从DOM获取HTML并将其存储在MySql中
我试图从页面获取某个div的内容,并将其存储在我的数据库中。我做了以下工作: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
$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
没有区别。标签被移除。