从HTML内容中提取数据

时间:2015-12-17 21:28:24

标签: php html curl

我正在尝试从HTML中提取数据。我用curl做了,但我需要的是将标题传递给另一个变量:

<meta  property="og:url" content="https://example.com/">

如何提取这个,有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

您应该使用解析器从HTML文件/字符串/文档中提取值。这是使用domdocument的一个例子。

$string = '<meta  property="og:url" content="https://example.com/">';
$doc = new DOMDocument();
$doc->loadHTML($string);
$metas = $doc->getElementsByTagName('meta');
foreach($metas as $meta) {
    if($meta->getAttribute('property') == 'og:url') {
        echo $meta->getAttribute('content');
    }
}

输出:

  

https://example.com/

答案 1 :(得分:0)

如果要从远程位置加载HTML而不是本地字符串,则可以使用以下内容来使用DOM:

libxml_use_internal_errors(TRUE);
$dom = new DOMDocument;
$dom->loadHTMLFile('https://evernote.com');
libxml_clear_errors();
$xp = new DOMXpath($dom);
$nodes = $xp->query('//meta[@property="og:url"]');
if(!is_null($nodes->item(0)->attributes)) {
    foreach ($nodes->item(0)->attributes as $attr) {
        if($attr->value!="og:url") {
            print $attr->value; 
        }
    }
}

输出预期值:

https://evernote.com/