preg_match_all正则匹配的取值问题,马上结贴!在线等......

avonqin 2010-12-23 03:49:17

<?
echo get_alexa("www.qq.com");
function get_alexa($website){
$url="http://data.alexa.com/data/+wQ411en8000lA?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&wid=12206&act=00000000000&ss=1680x1050&bw=964&t=0&ttl=35371&vis=1&rq=4&url=".$website;
$contents=file_get_contents($url);
$contents=str_replace('<a href="/','<a href="http://www.alexa.com/',$contents);
$contents = iconv("UTF-8","gbk//TRANSLIT",$contents);

preg_match_all("/<POPULARITY URL=\"(.*?)\" TEXT=\"(.*?)\"\/>/is",$contents,$num);
if($num[1][0]==""){
preg_match_all("/<div class=\"data down\">(.*?)<\/a><\/div>/is",$contents,$num);
}
Return number_format($num[2][0]);

}
?>


以上代码是获得www.QQ.com的alexa排名,应该是9.可是这样写却得不到9的结果,错在哪里呢?

可以直接访问如下连接看到xml格式的内容:

http://data.alexa.com/data/+wQ411en8000lA?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&wid=12206&act=00000000000&ss=1680x1050&bw=964&t=0&ttl=35371&vis=1&rq=4&url=www.QQ.com


...全文
114 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
foolbirdflyfirst 2010-12-23
  • 打赏
  • 举报
回复
preg_match_all("/<POPULARITY URL=\"(.*?)\" TEXT=\"(.*?)\"\/>/is",$contents,$num);
返回是原始的xml格式,为啥要用html entity去匹配
<转回为<
>转回为>
igaojie 2010-12-23
  • 打赏
  • 举报
回复
echo get_alexa("www.qq.com");
function get_alexa($website){
$url="http://data.alexa.com/data/+wQ411en8000lA?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&wid=12206&act=00000000000&ss=1680x1050&bw=964&t=0&ttl=35371&vis=1&rq=4&url=".$website;
$contents=file_get_contents($url);
$contents=str_replace('<a href="/','<a href="http://www.alexa.com/',$contents);
$contents = iconv("UTF-8","gbk//TRANSLIT",$contents);
//echo $contents;
preg_match_all('|POPULARITY URL=".*?" TEXT="(\d+)"|is',$contents,$num);
print_r($num[1]);//9
if($num[1][0]==""){
preg_match_all("/<div class=\"data down\">(.*?)<\/a><\/div>/is",$contents,$num);
}
Return number_format($num[2][0]);

}
igaojie 2010-12-23
  • 打赏
  • 举报
回复

echo get_alexa("www.qq.com");
function get_alexa($website){
$url="http://data.alexa.com/data/+wQ411en8000lA?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&wid=12206&act=00000000000&ss=1680x1050&bw=964&t=0&ttl=35371&vis=1&rq=4&url=".$website;
$contents=file_get_contents($url);
$contents=str_replace('<a href="/','<a href="http://www.alexa.com/',$contents);
$contents = iconv("UTF-8","gbk//TRANSLIT",$contents);
//echo $contents;
preg_match_all('|POPULARITY URL=".*?" TEXT="(\d+)"|is',$contents,$num);
print_r($num[1]);//9
if($num[1][0]==""){
preg_match_all("/<div class=\"data down\">(.*?)<\/a><\/div>/is",$contents,$num);
}
Return number_format($num[2][0]);

}

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧