获取特定 class 和 file_get_contents 链接的所有锚文本
Get all anchor texts of links in specific class with file_get_contents
我正在尝试检索此链接的锚文本:
<a class="c-shadow" href="some-random-link">text 1</a>
<a class="c-shadow" href="some-random-link">text 2</a>
<a class="c-shadow" href="some-random-link">text 3</a>
<a class="c-shadow" href="some-random-link">text 4</a>
<a class="c-shadow" href="some-random-link">text 5</a>
考虑到所有这些链接都具有相同的 class 名称 ( c-shadow ),我该如何检索所有锚文本?我需要找到文本 1、文本 2、文本 3、文本 4、文本 5...
您可以使用 DOMDocument 和 XPath 解析 html。 XPath 中的选择器语法非常简单——a
标记后跟 [@class='target_class_name']
。 foreach 循环将遍历符合条件的节点,然后只需在迭代时提取节点值即可。
代码:(Demo)
$html = <<<HTML
<a class="c-shadow" href="some-random-link">text 1</a>
<a class="c-shadow" href="some-random-link">text 2</a>
<a class="c-shadow" href="some-random-link">text 3</a>
<a class="c-shadow" href="some-random-link">text 4</a>
<a class="c-shadow" href="some-random-link">text 5</a>
HTML;
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
foreach ($xpath->evaluate("//a[@class='c-shadow']") as $node) {
$result[] = $node->nodeValue;
}
var_export($result);
输出:
array (
0 => 'text 1',
1 => 'text 2',
2 => 'text 3',
3 => 'text 4',
4 => 'text 5',
)
或者,textNode 也可以被隔离。
foreach ($xpath->query("//a[@class='c-shadow']/text()") as $textNode) {
$result[] = $textNode->nodeValue;
}
我正在尝试检索此链接的锚文本:
<a class="c-shadow" href="some-random-link">text 1</a>
<a class="c-shadow" href="some-random-link">text 2</a>
<a class="c-shadow" href="some-random-link">text 3</a>
<a class="c-shadow" href="some-random-link">text 4</a>
<a class="c-shadow" href="some-random-link">text 5</a>
考虑到所有这些链接都具有相同的 class 名称 ( c-shadow ),我该如何检索所有锚文本?我需要找到文本 1、文本 2、文本 3、文本 4、文本 5...
您可以使用 DOMDocument 和 XPath 解析 html。 XPath 中的选择器语法非常简单——a
标记后跟 [@class='target_class_name']
。 foreach 循环将遍历符合条件的节点,然后只需在迭代时提取节点值即可。
代码:(Demo)
$html = <<<HTML
<a class="c-shadow" href="some-random-link">text 1</a>
<a class="c-shadow" href="some-random-link">text 2</a>
<a class="c-shadow" href="some-random-link">text 3</a>
<a class="c-shadow" href="some-random-link">text 4</a>
<a class="c-shadow" href="some-random-link">text 5</a>
HTML;
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
foreach ($xpath->evaluate("//a[@class='c-shadow']") as $node) {
$result[] = $node->nodeValue;
}
var_export($result);
输出:
array (
0 => 'text 1',
1 => 'text 2',
2 => 'text 3',
3 => 'text 4',
4 => 'text 5',
)
或者,textNode 也可以被隔离。
foreach ($xpath->query("//a[@class='c-shadow']/text()") as $textNode) {
$result[] = $textNode->nodeValue;
}