这个我在开发一个微信公众平台的时候,想做个音乐的系统,由于本身没有资源所以自己就去简单的去做了一下,然后简单的封装了一下,供以后的人参考,这个类只是作为参考用,然后大家需要什么功能然后自己扩展就可以了,其实没有什么太难的,这个是做的QQ音乐的API,其实没什么难的,大家简单应用下还是不错的,可以关注我的微度生活微信公众平台,搜索“歌曲+歌名”体验一下!废话不多说了上代码!

<?php
/**
 *  music.class.php    音乐API类
 *
 * @copyright			widuu
 * @license				http://yun.widuu.com
 * @lastmodify			2013-6-18
 */
class music {
	private $musicname;
	
	public  function __construct($musicname){
		$this->musicname = $musicname;
	}
	private function map_url(){
		
		$url = "http://shopcgi.qqmusic.qq.com/fcgi-bin/shopsearch.fcg?value=".urlencode(iconv("utf-8","gb2312",$this->musicname));
		if(!function_exists("file_get_contents"))
		{
			$ch = curl_init();
			$timeout = 5;
			curl_setopt ($ch, CURLOPT_URL, $url);
			curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
			$file_contents = curl_exec($ch);
			curl_close($ch);
		}else{
			$file_contents = file_get_contents($url);
		}
		return $file_contents;
	}
	
	public function getmusic(){
		$data = $this-> map_url();
		$data = substr($data,15);
		$data = substr($data,0,-2);
		preg_match("/songlist\:\[(?P<music>.*)\]\}/i", $data,$musicdata);
		$musicdata = explode(",",$musicdata['music']);
		$music = array();
		foreach($musicdata as $v){
			if(preg_match("/\{idx\:(?P<id>.*)/i",$v,$a)){
				$id = trim($a[id],"\"");
			}
			if(preg_match("/song_id\:(?P<song_id>.*)/i", $v,$c)){
				$music[$id]['song_id'].=trim($c['song_id'],"\"");
			}
			if(preg_match("/song_name\:(?P<song_name>.*)/i",$v,$s)){
				$music[$id]['song_name'].=trim($s['song_name'],"\"");
			}
			if(preg_match("/album_name\:(?P<album_name>.*)/i",$v,$n)){
				$music[$id]['album_name'].=trim($n['album_name'],"\"");
			}
			if(preg_match("/singer_name\:(?P<singer_name>.*)/i",$v,$name)){
				$music[$id]['singer_name'].=trim($name['singer_name'],"\"");
			}
			if(preg_match("/location\:(?P<location>.*)/i",$v,$l)){
				$music[$id]['location'].=trim($l['location'],"\"");
			}
		}
		return $music;
	}
	public  function getmusicurl(){
		$muiscurl = "";
		$result = $this->getmusic();
		foreach ($result as $id =>$v){
		
		$muiscurl.="歌曲{$id},歌曲名称:".iconv("gb2312","utf-8",$v['song_name']).",歌手:".iconv('gb2312','utf-8',$v['singer_name']).",专辑:".iconv('gb2312','utf-8',$v['album_name']).",歌曲地址:http://stream1{$v['location']}.qqmusic.qq.com/3{$v['song_id']}.mp3<br>";
		}
		return $muiscurl;
	}
}
$music = new music("新年快乐");
$data = $music->getmusic();
//var_dump($data);
//echo "http://stream1{$data[1]['localtion']}.qqmusic.qq.com/3{$data[1]['song_id']}.mp3";
echo $music->getmusicurl();
大家希望开发成什么功能留言即可,有什么不足可以留言,希望转载的时候留下版权,谢谢大家! 微信公众平台

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部