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
/**
* 酷狗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);
* 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()){
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
$aPOST = array();
foreach($keysArr as $key=>$val){
$aPOST[]= $key."=".urlencode($val);
$strPOST = implode("&", $aPOST);
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$strPOST);
* 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;