要在 php 中獲取 html 代碼中的所有連結,你可以使用正則表達式或者使用 dom 解析器。我將為你提供兩種方法。
方法一:使用正則表達式
<?php
$html = '<html>
<body>
<a href="https://example.com">link 1</a>
<a href="https://example.com/page2">link 2</a>
<a href="https://example.com/page3">link 3</a>
</body>
</html>';
preg_match_all('/<a\s+[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>/si',$html,$matches);
$links = $matches[2];
print_r($links);
>
這段代碼會輸出連結的 url,但不會輸出連結的文本。
方法二:使用 dom 解析器(php 的內建函數)
<?php
$html = '<html>
<body>
<a href="https://example.com">link 1</a>
<a href="https://example.com/page2">link 2</a>
<a href="https://example.com/page3">link 3</a>
</body>
</html>';
$doc = new domdocument();
$doc->loadhtml($html);
$links = $doc->getelementsbytagname('a');
foreach ($links as $link) {
echo $link->getattribute('href')."\n";
}
>
這段代碼會輸出連結的 url 和文本。如果你只想獲取連結的 url,你可以在循環內部添加一行代碼 $link->nodevalue;來獲取連結的文本。
- 編程問答
- 答案列表
php 獲取html代碼中的所有連結[朗讀]
加入收藏