一個通用的答案:
舉例來說,假設你有一個ID =錨在您的錨休息一個導航欄。
例HTML:
$html = '<html>(...)
<div id="anchors">
<a href="anchor1.php">link number 1</a>
<a href="anchor2.php">another link</a>
</div>
(...)
</html>';
實施例功能:
function findAnchors($html)
{
$links = array();
$doc = new DOMDocument();
$doc->loadHTML($html);
$navbars = $doc->getElementsByTagName('div');
foreach ($navbars as $navbar) {
$id = $navbar->getAttribute('id');
if ($id === "anchors") {
$anchors = $navbar->getElementsByTagName('a');
foreach ($anchors as $a) {
$links[] = $doc->saveHTML($a);
}
}
}
return $links;
}
這將返回所有鏈接的數組。
輸出:
array
0 => string '<a href="anchor1.php">link number 1</a>' (length=39)
1 => string '<a href="anchor2.php">another link</a>' (length=38)
編輯基地OP評論:
除非你的 「標籤」 他們不知何故,它的不平凡。一種方法是爲每個錨點添加一個類,然後橫切整個文檔。
例子:
HTML
$html = '<html>(...)
<a class="anchor" href="anchor1.php">link number 1</a>
(... stuff in here)
<a class="anchor" href="anchor2.php">another link</a>
(...)
</html>';
功能:
function findAnchors($html)
{
$links = array();
$doc = new DOMDocument();
$doc->loadHTML($html);
$aTags = $doc->getElementsByTagName('a');
foreach ($aTags as $a) {
$class = $a->getAttribute('class');
if ($class === "anchor") {
$links[] = $doc->saveHTML($a);
}
}
return $links;
}
,請複製粘貼一些代碼 – GBD
過於一般,因爲我們不知道這些鏈接是如何產生的 – Tivie
是否有碼?沒有代碼,沒有答案! –