PHP酷狗音乐采集类

发表于 2015-12-24 / 3317 次围观

php

/**

* 酷狗API类

* @author Flc <2015-08-27 22:51:24>

*/

$kugou =new kugou();

$lists = $kugou->getList('儿歌');

print_r($lists);

$music = $kugou->getMusic('2dc67062d830de3b60b7e4b09820e062');

print_r($music);

print_r($music['url']);

class kugou{

const LIST_URL ='http://lib9.service.kugou.com/websearch/index.php?page={page}&keyword={keyword}&cmd=100&pagesize={pagesize}';

const MUSIC_URL ='http://m.kugou.com/app/i/getSongInfo.php?hash={hash}&cmd=playInfo';

protectedstatic $http =null;

/**

* 初始化

*/

function __construct(){

if(self::$http ==null)self::$http =new http();

}

/**

* 获取列表

* @param string $keyword 关键字

* @param integer $page 当前页

* @param integer $pagesize 每页获取数量

* @return array|false

*/

publicfunction getList($keyword, $page =1, $pagesize =10){

$url = str_replace(array('{page}','{keyword}','{pagesize}'), array($page, $keyword, $pagesize),self::LIST_URL);

$json =self::$http->http_gets($url);

if(!$json)returnfalse;

$resp = json_decode($json,true);

return $resp;

}

/**

* 获取音乐地址

* @param string $hash 音乐hash码

* @return string|false

*/

publicfunction getMusic($hash){

$url = str_replace(array('{hash}'), array($hash),self::MUSIC_URL);

$json =self::$http->http_gets($url);

if(!$json)returnfalse;

$resp = json_decode($json,true);

return $resp;

}

}

/**

* http请求类

* @author Flc <2015-08-27 22:51:47>

*/

class http{

/**

* 服务器通过get请求获得内容

* @param string $baseURL 基础URL

* @param array $keysArr 请求参数

* @return string [description]

*/

publicstaticfunction http_gets($baseURL, $keysArr = array()){

$url =self::combineURL($baseURL, $keysArr);

$ch = curl_init();

if(stripos($url,"https://")!==FALSE){

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($ch, CURLOPT_SSLVERSION,1);//CURL_SSLVERSION_TLSv1

}

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

$sContent = curl_exec($ch);

$aStatus = curl_getinfo($ch);

curl_close($ch);

if(intval($aStatus["http_code"])==200){

return $sContent;

}else{

returnfalse;

}

}

/**

* post方式请求资源

* @param string $url 基于的baseUrl

* @param array $keysArr 请求的参数列表

* @return string 返回的资源内容

*/

publicstaticfunction http_post($url, $keysArr = array()){

$ch = curl_init();

if(stripos($url,"https://")!==FALSE){

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);

curl_setopt($ch, CURLOPT_SSLVERSION,1);//CURL_SSLVERSION_TLSv1

}

$aPOST = array();

foreach($keysArr as $key=>$val){

$aPOST[]= $key."=".urlencode($val);

}

$strPOST = implode("&", $aPOST);

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch, CURLOPT_POST,true);

curl_setopt($ch, CURLOPT_POSTFIELDS,$strPOST);

$sContent = curl_exec($ch);

$aStatus = curl_getinfo($ch);

curl_close($ch);

if(intval($aStatus["http_code"])==200){

return $sContent;

}else{

returnfalse;

}

}

/**

* combineURL

* 拼接url

* @param string $baseURL 基于的url

* @param array $keysArr 参数列表数组

* @return string 返回拼接的url

*/

publicstaticfunction combineURL($baseURL, $keysArr){

if(empty($keysArr)||!is_array($keysArr))return $baseURL;

$combined = $baseURL."?";

$valueArr = array();

foreach($keysArr as $key => $val){

$valueArr[]="$key=".urlencode($val);

}

$keyStr = implode("&",$valueArr);

$combined .=($keyStr);

return $combined;

}

}

标签: PHP

技术宅,科技怪,程序猿。

Comments : 0

有问题可在下面发表评论,当然没事也可以在下面吹吹牛皮、扯扯淡!

昵称 *

邮箱 *

网址

酷狗mv采集php,PHP酷狗音乐采集类相关推荐

  1. php获取酷狗mv播放链接,酷狗歌单获取歌曲信息的接口源码

    <?php /** *@authorYoungxj *@time2018年6月22日 *@todo利用酷狗歌单进行获取酷狗歌曲信息 */ // 访问短网址出现的地址 // http://m.ku ...

  2. AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)

    上次写了一个 .NET从优酷专辑中采集所有视频及信息(VB.NET代码) http://www.cnblogs.com/clso/archive/2010/01/09/1642952.html 个人觉 ...

  3. 新酷卡 mysql接口_新酷卡M池二次开发模块数据库操作版

    有大神发了一个soket方式的,尝试继承到模块后发现soket不太适合放到易模块类内, 客户组件不支持放在类内,必须放在界面上,传入赋值类内客户变量,收到数据事件也没办法放在类内,放弃 远程服务支持库 ...

  4. linux看门狗树莓派,给树莓派安装看门狗

    你还在担心树莓派死机吗?给他装个看门狗吧! 什么是看门狗程序? 看门狗程序就是一个健康监控程序,每间隔一定时间(默认10秒)检查一次是否在设定的健康工作范围内,如果超过即启动硬件复位程序,让设备重新启 ...

  5. Flutter 制作一个具有酷炫液体滑动效果的酷炫入门页面

    本文主要介绍如何使用 Flutter 制作一个具有酷炫液体滑动效果的酷炫入门页面 我将向您展示如何使用 Flutter 制作一个具有酷炫液体滑动效果的酷炫入门页面,所以不用多说,让我们开始吧.在本课程 ...

  6. [网络安全自学篇] 三十三.文件上传之绕狗一句话原理和绕过安全狗(六)

    这是作者的系列网络安全自学教程,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文详细讲解了Upload-labs靶场及文件上传漏洞20道CTF题目,并结合C ...

  7. 优酷html5视频没有弹幕,优酷弹幕怎么设置 优酷PC端怎么屏蔽底下弹幕?

    电脑版优酷打开弹幕步骤: 打开电脑浏览器,在地址栏输入优酷官网地址,进入优酷官网. 进入优酷官网后,点击想要观看的影片并播放. 影片非全屏播放时,在播放界面有一个全屏符号,点击该符号进入全屏播放模式. ...

  8. stm32看门狗_STM32单片机:独立看门狗、窗口看门狗的配置

    SATM32单片机的看门狗有独立看门狗和窗口看门狗之分,这两者的工作原理却完全不同,今天来看一下他们的具体区别和配置方法.▍STM32独立看门狗由专门的低速时钟(LSI)驱动,即便是主时钟发生故障它仍 ...

  9. 狗不理是怎样混到狗都不理的?

    转载自「世界知识局」 ID:sjzhishiju 包子届成员千千万,谁是No.1? 大部分人首先想到的,都是"天津狗不理包子". 但最近,包子届老大的日子也不太好过了.早在几个月前 ...

最新文章

  1. A*寻路算法的探寻与改良(三)
  2. Win10下使用Debug
  3. 基于朴素贝叶斯的垃圾邮件分类-着重理解拉普拉斯变换
  4. (转)web.xml 中的listener、 filter、servlet 加载顺序及其详解
  5. LVS——DR模式+Keepalived(高可用)
  6. Leetcode 224.基本计算器
  7. xposed获取context 的方法
  8. ENVI学习总结(九)——图像裁剪
  9. 短视频系统+购物直播APP开发方案
  10. IOS 10 适配系列 _3_ Xcode 8 GM seed
  11. 微信扫一扫二维码直接打开手机默认外部浏览器
  12. tdd测试_变异测试是TDD的发展
  13. 网易收购《底特律》《暴雨》开发商继续走向全球化
  14. 44.网络安全渗透测试—[穷举篇7]—[网站会员批量登录穷举]
  15. 二级建造师【管理】第一章:施工方的项目管理
  16. win10文件夹加密_分享win10系统不使用第三方工具加密文件夹的操作方法(图文)
  17. jdk版本8u201 8u202 区别
  18. 手机上html怎么删不掉,格式化也不靠谱?教你如何彻底删除手机上的数据
  19. 单片机之实验计数器实验
  20. 用 Python 实现 扫雷小游戏

热门文章

  1. sa是什么岗位的简称_【岗位分析】95%岗位免基层工作经历 |广西公务员考试(钦州市)历年招录岗位分析!(结尾附上岸干货)...
  2. 购物中心促销软文如何写?商场节假日活动文案范例
  3. BZOJ4921 互质序列
  4. 如何摆放PCB元器件?(建议收藏)
  5. 随机生成m个和为n的数
  6. Sony 欧洲注册新商标 疑为PS5开放世界游戏作准备
  7. OA系统中源文档加水印功能
  8. matlab Hata Okumura模型
  9. English-spoken
  10. 黑白棋代码Linux程序,C语言编写的黑白棋游戏源代码.doc