爱好者 > Typecho > 代码相关 > php查看B站互相关注的好友

php查看B站互相关注的好友

作者:佚名 来源:爱好者 时间:2018-08-04

B站跟微博越来越像了,被网友戏称“B博”,但是有个小细节跟微博还有点差异,在B站我的关注里,只能看到,xxx已关注,而看不到“互相关注”的字样!
如下图,右侧
 

B站关注界面.png

 
那么如何自行的查下自己关注的人里哪些人也关注了我呢?
 
在b站https://api.bilibili.com/x/web-interface/card?mid=7530883&jsonp=jsonp&article=true这个api里能够查询到,自己都关注了哪些人,所以利用这一点,挨个查询自己关注的人里是否有自己即可。
 
上php代码
 
<?php
header('Access-Control-Allow-Origin:*');  
$id=$_SERVER["QUERY_STRING"];
$reg = '/^[0-9][0-9]*$/';
if(preg_match($reg,$id)){
  // 从文件中读取数据到PHP变量
$json_string = file_get_contents('https://api.bilibili.com/x/web-interface/card?mid='.$id.'&jsonp=jsonp&article=true');
// 把JSON字符串转成PHP数组
$data = json_decode($json_string);
//定义我的关注数量,定义我关注的人的数组
$num=$data->data->card->attention;
$att=$data->data->card->attentions;
echo '<p>这些与你b站互关了:</p>';
//for循环挨个查询
for($i=0;$i<$num;$i++){
    $json_string = file_get_contents('https://api.bilibili.com/x/web-interface/card?mid='.$att[$i].'&jsonp=jsonp&article=true');    
  $data = json_decode($json_string);  
  $tatt=$data->data->card->attentions;
  if (in_array($id, $tatt)) {
    echo $att[$i].'-'.$data->data->card->name.'<br>';
}  
  }  
}else{echo "非法参数";}
?>
访问http://你的域名/hg.php?7530883即可,其中hg换成你的php的文件名,而7530883换成你的b站id即可。
 
效果图如下:
 

b博互粉好友.png

 
代码效率比较低,垃圾博主不会优化...请各位大佬指路...