使用PHP从HTML文件中提取链接
使用以下函数从HTML字符串中提取所有链接。
function linkExtractor($html) { $linkArray = array(); if(preg_match_all('/]*)[\"\']?[^>]*>(.*?)<\/a>/i', $html, $matches, PREG_SET_ORDER)){ foreach ($matches as $match) { array_push($linkArray, array($match[1], $match[2])); } } return $linkArray; }
要使用它,只需将网页或文件读入字符串,然后将该字符串传递给函数。以下示例使用PHPCURL函数读取网页,然后将结果传递到该函数中以检索链接。
$url = 'http://www.hashbangcode.com'; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12'); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,0); curl_setopt($ch,CURLOPT_TIMEOUT,120); $html = curl_exec($ch); curl_close($ch); echo '' . print_r(linkExtractor($html), true) . '';该函数将返回一个数组,每个元素都是一个包含链接位置和链接包含的文本的数组。