在 HTML 中,鏈接通常以 <a> 標籤的形式出現,其 href 屬性表示鏈接的地址。你可以使用正則表達式來匹配 <a> 標籤,並提取其中的 href 屬性值。以下是一個示例正則表達式:
$pattern = '/<a\s[^>]*href=([\'"])(.*?)\1[^>]*>/i';該正則表達式匹配所有 <a> 標籤,並提取其中的 href 屬性值。其中,([\'"]) 表示匹配引號(單引號或雙引號),\1 表示引用第一個捕獲組(即匹配的引號),(.*?) 表示非貪婪匹配任意字符,直到遇到下一個引號。
下面是一個示例代碼:
// 獲取目標 URL 的 HTML 內容
$html = file_get_contents('https://example.com');
// 匹配所有鏈接
$pattern = '/<a\s[^>]*href=([\'"])(.*?)\1[^>]*>/i';
if (preg_match_all($pattern, $html, $matches)) {
// 提取鏈接地址
$links = $matches[2];
foreach ($links as $link) {
echo $link . '<br>';
}
} else {
echo '沒有找到鏈接';
}在上述代碼中,我們首先獲取目標 URL 的 HTML 內容,然後使用正則表達式匹配其中的所有鏈接。如果匹配成功,則從匹配結果中提取鏈接地址並輸出。否則,輸出“沒有找到鏈接”。