使用 file_get_contents 获取属性值
Get value of Attribute using file_get_contents
我想从特定的 link.
获取属性 href 的值
我想要获取值的 html 代码如下所示:
<a href="mailto:mail@xy.com">Some link</a>
我想要内部 href (mailto:mail@xy.com) 但我得到了 link 的值(有些 link)。
代码如下:
$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>';
}
}
这个怎么样:
$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>";
}
}
只需对您的当前值使用一个子字符串:
echo '<tr><td>' . substr($node->getAttribute('href'),7) . '</td></tr>';
我不喜欢7这样的神奇数字,但是"mailto:"的长度。如果需要,请替换为变量。
您要访问的是 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')
一次并将其存储在变量中。
我想从特定的 link.
获取属性 href 的值我想要获取值的 html 代码如下所示:
<a href="mailto:mail@xy.com">Some link</a>
我想要内部 href (mailto:mail@xy.com) 但我得到了 link 的值(有些 link)。
代码如下:
$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>';
}
}
这个怎么样:
$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>";
}
}
只需对您的当前值使用一个子字符串:
echo '<tr><td>' . substr($node->getAttribute('href'),7) . '</td></tr>';
我不喜欢7这样的神奇数字,但是"mailto:"的长度。如果需要,请替换为变量。
您要访问的是 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')
一次并将其存储在变量中。