如何使用php查找网站的入站和出站链接总数?

时间:2010-11-29 19:30:09

标签: php

如何使用php查找网站的入站和出站链接总数?

4 个答案:

答案 0 :(得分:1)

计算出站链接

  • 为网页解析html
  • 使用正则表达式解析所有链接
  • 过滤以您的域名开头的链接或“/”

到入站链接

答案 1 :(得分:1)

对于出站链接,您必须按照此处的建议解析网站的HTML代码。

对于入站链接,我建议使用Google自定义搜索API,向谷歌发送直接请求可以让您的IP被禁止。您可以查看搜索API here。这是我在我的代码中使用的函数api:

  function doGoogleSearch($searchTerm)
  {
    $referer = 'http://your-site.com';
    $args['q'] = $searchTerm;        
    $endpoint = 'web';
    $url = "http://ajax.googleapis.com/ajax/services/search/".$endpoint;

    $args['v'] = '1.0';
    $key= 'your-api-key';


    $url .= '?'.http_build_query($args, '', '&');

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        
    curl_setopt($ch, CURLOPT_REFERER, $referer);
    $body = curl_exec($ch);
    curl_close($ch);
    //decode and return the response
    return json_decode($body);
  }

将此函数调用为:$result = doGoogleSearch('link:site.com')后,变量$result->cursor->estimatedResultCount将返回返回的结果数。

答案 2 :(得分:0)

PHP无法通过一些简单的操作来确定页面的入站链接。您要么必须监控所有传入的访问者并检查他们的推荐人是什么,要么解析整个互联网以获取指向该网站的链接。第一种方法会错过未使用的链接,第二种方法最好留给Google。

另一方面,来自站点的出站链接是可行的。您可以在页面中阅读并分析文本以查找带有正则表达式的链接,并计算总数。

答案 3 :(得分:0)

function getGoogleLinks($host)
{

    $request = "http://www.google.com/search?q=" . urlencode("link:" . $host) ."&hl=en";

    $data = getPageData($request);
    preg_match('/<div id=resultStats>(About )?([\d,]+) result/si', $data, $l);
    $value = ($l[2]) ? $l[2] : "n/a";
    $string = "<a href=\"" . $request . "\">" . $value . "</a>";
    return $string;
}
//$host means the domain name