首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用file_get_contents获取属性值

使用file_get_contents获取属性值
EN

Stack Overflow用户
提问于 2018-07-04 05:52:52
回答 3查看 914关注 0票数 0

我想从一个特定的链接中获取属性href的值。

我想要获取值的html代码如下所示:

<a href="mailto:mail@xy.com">Some link</a>

我想要内部的href (mail@xy.com),但是我得到了链接的值(一些链接)。

的代码是:

$content = file_get_contents($url);

$dom = new domdocument();
$dom->loadhtml($content);


$nodes = $dom->getElementsByTagName('a');
foreach( $nodes as $node ) {
    if( strpos($node->getAttribute('href'), 'mailto') !== false ) {
        echo '<tr><td>' . $node->nodeValue . '</td></tr>';
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-04 05:58:09

这样如何:

$content = file_get_contents($url);
$dom = new domdocument();
$dom->loadhtml($content);
$nodes = $dom->getElementsByTagName('a');
foreach( $nodes as $node ) {
    $nodehref = $node->getAttribute('href');
    if( strpos($nodehref, 'mailto') !== false ) {
        echo "<tr><td>$nodehref</td></tr>";
    }
}
票数 2
EN

Stack Overflow用户

发布于 2018-07-04 05:59:38

只需使用当前值的子字符串:

echo '<tr><td>' . substr($node->getAttribute('href'),7)  . '</td></tr>';

我不喜欢像7这样的魔术数字,但它是"mailto:“的长度。如果愿意,可以替换为变量。

票数 0
EN

Stack Overflow用户

发布于 2018-07-04 06:03:15

您想要访问的是href属性,您已经正确地将该属性用作strpos()的参数。然而,在您的回显中,您使用的是<a>元素(即nodeValue())的值。W3CSchool有一些关于这些东西的short information,可能值得一读。

这应该是可行的:

$nodes = $dom->getElementsByTagName('a');
foreach( $nodes as $node ) {
    if( strpos($node->getAttribute('href'), 'mailto') !== false ) {
        echo '<tr><td>' . $node->getAttribute('href') . '</td></tr>';
    }
}

或者,您可以只调用$node->getAttribute('href')一次,并将其存储在一个变量中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51163267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档