php 获取新浪微博热门排行

180it 2019-11-04 AM 2021℃ 0条

<?php
header("Content-type: text/json; charset=utf-8");
function getSubstr($str, $leftStr, $rightStr)
{

$left = strpos($str, $leftStr);
//echo '左边:'.$left;
$right = strpos($str, $rightStr,$left);
//echo '<br>右边:'.$right;
if($left < 0 or $right < $left) return '';
return substr($str, $left + strlen($leftStr), $right-$left-strlen($leftStr));

}
$url="https://s.weibo.com/top/summary?cate=realtimehot";
//获取
$UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, '');
curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($curl);
curl_close($curl);
$data = getSubstr($data,'

','');
//echo $data;

$data = str_replace("/weibo?q=","",$data);
$data = str_replace("&Refer=new_time","",$data);
$data = str_replace("&Refer=top","",$data);

$preg='/<a(?:.?)href="(((?:http(?:s?)://)?(1+))?(?:2))"(?:3?)>(4?)</a>/i';
preg_match_all($preg,$data,$array2);

$data2 = array_unique($array2[1]); //数组去重
$data2 = array_merge($data2); //数组合并
echo "data2".count($data2);

$arrlength=count($data2);

for($x=0;$x<$arrlength;$x++)
{
// echo urldecode($data2[$x]);
// echo "
";

$str = urldecode($data2[$x]);
$arr[] = $str;//数组输出

}

//打印数组
print_r ($arr);
return;


  1. \"/
  2. \"
  3. >
  4. <
支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

php 获取新浪微博热门排行