使用Alexa API获取网站的Alexa排名的PHP代码
Alexa虽然逐渐式微,用的人越来越少,但是它的排名还是具有一定的参考意义,我们可以用PHP代码来调用某个域名的ALEXA排名显示出来。
Alexa XML API 提供网站的Alexa相关的数据(XML格式的),再使用XML解析器来解析Alexa返回的XML,最终就能得到Alexa排名或其它的数据。
Alexa接口
Alexa的XML API接口是:http://data.alexa.com/data?cli=10&url=%YOUR_URL%
如果想获取更多的数据可以用:http://data.alexa.com/data?cli=10&dat=snbamz&url=%YOUR_URL%
用http://data.alexa.com/data?cli=10&dat=snbamz&url=bnxb.com返回的数据如下:
其中POPULARITY元素中的TEXT属性的值16470501就是当前Alexa排名。REACH RANK="15348462"是下一期可能排名
代码实现:
用PHP实现通过Alexa API 获取Alexa排名的代码如下:
<php>
function getAlexaRank ($Domain){
$line = "";
$data = "";
$URL = "http://data.alexa.com/data/?cli=10&dat=snba&url=". $Domain ;
$fp = fopen ($URL ,"r");
if ($fp ){
while (!feof ($fp )){
$line = fgets ($fp );
$data .= $line ;
}
$p= xml_parser_create ();
xml_parse_into_struct ($p , $data , $vals );
xml_parser_free ($p );
for ($i =0 ;$i <count ($vals );$i ++){
if ($vals [$i ]["tag"]=="POPULARITY"){
return $vals [$i ]["attributes"]["TEXT"];
}
}
}
}
?>
使用方法:
代码如下:
<?php
echo getAlexaRank("bnxb.com");
?>
一个查询实例
Alexa XML API 提供网站的Alexa相关的数据(XML格式的),再使用XML解析器来解析Alexa返回的XML,最终就能得到Alexa排名或其它的数据。
Alexa接口
Alexa的XML API接口是:http://data.alexa.com/data?cli=10&url=%YOUR_URL%
如果想获取更多的数据可以用:http://data.alexa.com/data?cli=10&dat=snbamz&url=%YOUR_URL%
用http://data.alexa.com/data?cli=10&dat=snbamz&url=bnxb.com返回的数据如下:
<?xml version="1.0" encoding="UTF-8"?> <!-- Need more Alexa data? Find our APIs here: https://aws.amazon.com/alexa/ --> <ALEXA VER="0.9" URL="bnxb.com/" HOME="0" AID="=" IDN="bnxb.com/"> <RLS PREFIX="http://" more="0"> </RLS> <SD TITLE="A" FLAGS="" HOST="bnxb.com"> </SD> <SD><POPULARITY URL="bnxb.com/" TEXT="16470501" SOURCE="panel"/><REACH RANK="15348462"/><RANK DELTA="-2634619"/></SD></ALEXA>
其中POPULARITY元素中的TEXT属性的值16470501就是当前Alexa排名。REACH RANK="15348462"是下一期可能排名
代码实现:
用PHP实现通过Alexa API 获取Alexa排名的代码如下:
<php>
function getAlexaRank ($Domain){
$line = "";
$data = "";
$URL = "http://data.alexa.com/data/?cli=10&dat=snba&url=". $Domain ;
$fp = fopen ($URL ,"r");
if ($fp ){
while (!feof ($fp )){
$line = fgets ($fp );
$data .= $line ;
}
$p= xml_parser_create ();
xml_parse_into_struct ($p , $data , $vals );
xml_parser_free ($p );
for ($i =0 ;$i <count ($vals );$i ++){
if ($vals [$i ]["tag"]=="POPULARITY"){
return $vals [$i ]["attributes"]["TEXT"];
}
}
}
}
?>
使用方法:
代码如下:
<?php
echo getAlexaRank("bnxb.com");
?>
一个查询实例
<!DOCTYPE html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>ALEXA全球排名查询|笨牛网工具箱系列</title> <style type="text/css" media="all"> html, body {margin: 0;padding: 0; }body {color: #333;font: 12px Tahoma,Lucida Grande, sans-serif;margin: 9%;}a {color: #0055CC; }img {border: 0px solid #CCC;}h1 {margin: 0;}h3 {color: #555;font-size: 1.6em;font-weight: normal;margin: 0; }pre {color: #0055CC;font-size: 1.1em;line-height: 1.2;margin: 0.25em 0; }p {margin: 0.65em 0;}#ads {border-left: 1px solid #eee;float: right;margin: 0 0 2em 2.5em;padding-left: 3px;width: 160px;}#source {margin-bottom: 2.5em; }pre {overflow: auto;padding:1em 0; }h2 {position: relative;top: 0.5em;} </style> </head> <body> <h3>Alexa全球排名检测</h3> <form method="post" action=""> 输入网址:<input type="text" name="url" size="48"/> <input type="submit" value="检测"/> </form> <?php header("Content-type: text/html; charset=utf-8"); $domainurl = $_POST['url']; if (!preg_match('/^http/', $domainurl)) { $domainurl = "http://" . $domainurl; } $tempu=parse_url($domainurl); $message=$tempu['host']; function getAlexaRank ($message){ $line = ""; $data = ""; $URL = "http://data.alexa.com/data/?cli=10&dat=snba&url=". $message ; $fp = fopen ($URL ,"r"); if ($fp ){ while (!feof ($fp )){ $line = fgets ($fp ); $data .= $line ; } $p= xml_parser_create (); xml_parse_into_struct ($p , $data , $vals ); xml_parser_free ($p ); for ($i =0 ;$i <count ($vals );$i ++){ if ($vals [$i ]["tag"]=="POPULARITY"){ return $vals [$i ]["attributes"]["TEXT"]; } } } } echo '全球排名:'.getAlexaRank($message); ?> </body>
顶(0)
踩(0)
- 最新评论