function batch_get($id, $type) { if ($type) { $result = json_decode(get_album_info($album_id), true); $result = $result["album"]["songs"]; } else { $result = json_decode(get_playlist_info($playlist_id), true); $result = $result['result']['tracks']; } $song_list = "["; foreach ($result as $key => $song) { $result = json_decode(get_music_info($song['id']), true); $result = $result['songs'][0]; $info = "{"; $music_name = $result['name']; $artist_name = $result['artists'][0]['name']; $music_url = $result['mp3Url']; $music_pic = $result['album']['picUrl']; $info .= "title:'" . $music_name . "',author:'" . $artist_name . "',url:'" . $music_url . "',pic:'" . $music_pic . "'},"; $song_list .= $info; } $song_list = rtrim($song_list, ","); $song_list .= "]"; return $song_list; }
function getResult($word) { $is_Song = false; // 搜索关键词是否为歌曲 $isEnglish = preg_match("/^[a-zA-Z\\s]+\$/", $word); // 是否为英文歌/歌手 $arr = preg_split("/[\\s,]+/", $word); $result = json_decode(music_search($word), true); // 默认按歌曲先搜索一次(true转换为数组) if (!$isEnglish) { if (count($arr) == 1) { // 非英文切只有一个搜索关键词 $is_Song = $result['result']['songs'][0]['name'] == $word; // 如果返回的歌曲名与搜索关键词相同即表示关键词为歌曲 } else { // 非英文且多个关键词 foreach ($arr as $key => $keyword) { $result = json_decode(music_search($keyword), true); if ($result['result']['songs'][0]['name'] == $keyword) { $is_Song = true; $result = json_decode(music_search($arr[$key]), true); break; } } } } else { // 全英文 $is_Song = stristr($word, $result['result']['songs'][0]['name']); } if ($is_Song) { $result = $result['result']; $song = $result['songs'][0]; $music_name = $song['name']; // 歌名 $artist_name = $song['artists'][0]['name']; // 歌手 $music_id = $song['id']; $result = json_decode(get_music_info($music_id), true); $music_url = $result['songs'][0]['mp3Url']; $info = array($music_name, $artist_name, $music_url); // @todo 此处必须使用array()函数创建数组,直接赋值有问题 return $info; } else { $result = json_decode(music_search($word, 100), true); $artist = $result['result']['artists'][0]; $artist_id = $artist['id']; $artist_info = "http://music.163.com/#/artist?id=" . $artist_id; $artist_name = $artist['name']; $artist_pic = $artist['picUrl']; $info = array($artist_name, $artist_info, $artist_pic, $artist_id); return $info; } }
setcookie("played", json_encode($played), time() + 3600); return $id; } foreach ($playlist_list as $key) { $json = get_playlist_info($key); $arr = json_decode($json, true); foreach ($arr["result"]["tracks"] as $key2) { $id = $key2["id"]; if (!in_array($id, $player_list)) { $player_list[] = $id; } } } //获取数据 $id = get_music_id(); $music_info = json_decode(get_music_info($id), true); $lrc_info = json_decode(get_music_lyric($id), true); //处理音乐信息 $play_info["cover"] = $music_info["songs"][0]["album"]["picUrl"]; $play_info["mp3"] = $music_info["songs"][0]["mp3Url"]; $play_info["mp3"] = str_replace("http://m", "http://p", $play_info["mp3"]); $play_info["music_name"] = $music_info["songs"][0]["name"]; foreach ($music_info["songs"][0]["artists"] as $key) { if (!isset($play_info["artists"])) { $play_info["artists"] = $key["name"]; } else { $play_info["artists"] .= "," . $key["name"]; } } //处理歌词 if (isset($lrc_info["lrc"]["lyric"])) {
$time = urlencode($time); $uptime = urlencode(date("Y-m-d H:i:s", time())); $cip = urlencode(getip()); $option = urlencode($option); //检测是否重复提交 $sql = DB_Select("ticket_view", array("user" => "LIKE " . "'" . $user . "'", "songid" => "LIKE " . "'" . $songid . "'")); $query = DB_Query($sql, $con); if (DB_Num_Rows($query) >= 1) { die('{"message":"请不要重复提交歌曲!谢谢!"}'); } $sql = DB_Select("songtable", array("sid" => "=" . $songid)); $query = DB_Query($sql, $con); if (DB_Num_Rows($query) == 0) { include "../163musicapi/command.php"; //获取网易云音乐数据 $resultmusic = json_decode(get_music_info($songid), true); $songurl = $resultmusic["songs"][0]["mp3Url"]; foreach ($resultmusic["songs"][0]["artists"] as $artist) { if (isset($artists)) { $artists .= "/" . $artist["name"]; } else { $artists = $artist["name"]; } } $songtitle = urlencode($resultmusic["songs"][0]["name"] . " - " . $artists); $songcover = $resultmusic["songs"][0]["album"]["picUrl"]; $sql = DB_Insert("songtable", array("sid" => $songid, "songurl" => $songurl, "songtitle" => $songtitle, "songcover" => $songcover)); $result = DB_Query($sql, $con); } //写入数据库 $sql = DB_Insert("ticket_view", array("user" => $user, "songid" => $songid, "message" => $message, "to" => $to, "time" => $time, "uptime" => $uptime, "ip" => $cip, "info" => "0", "option" => $option));
GET http://music.163.com/api/song/lyric 必要参数: id:歌曲ID lv:值为-1, kv:值为-1, tv:值为-1, */ function get_music_lyric($music_id) { $url = "http://music.163.com/api/song/lyric?os=pc&id=" . $music_id . "&lv=-1&kv=-1&tv=-1"; return curl_get($url); } /* Full request URI: http://music.163.com/api/mv/detail?id=319104&type=mp4 GET http://music.163.com/api/mv/detail 必要参数: id:mvid type:值为mp4,视频格式,不清楚还有没有别的格式 */ function get_mv_info() { $url = "http://music.163.com/api/mv/detail?id=319104&type=mp4"; return curl_get($url); } //echo music_search("Moon Without The Stars", "1"); echo get_music_info("28949444"); //echo get_artist_album("166009", "5"); //echo get_album_info("3021064"); //echo get_playlist_info("22320356"); //echo get_music_lyric("29567020"); //echo get_mv_info();
{ $url = "http://music.163.com/api/artist/albums/" . $artist_id . "?limit=" . $limit; return curl_get($url); } function get_album_info($album_id) { $url = "http://music.163.com/api/album/" . $album_id; return curl_get($url); } function get_playlist_info($playlist_id) { $url = "http://music.163.com/api/playlist/detail?id=" . $playlist_id; return curl_get($url); } function get_music_lyric($music_id) { $url = "http://music.163.com/api/song/lyric?os=pc&id=" . $music_id . "&lv=-1&kv=-1&tv=-1"; return curl_get($url); } function get_mv_info() { $url = "http://music.163.com/api/mv/detail?id=319104&type=mp4"; return curl_get($url); } #echo music_search("Moon Without The Stars", "1"); echo get_music_info($_POST['id']); #echo get_artist_album("166009", "5"); #echo get_album_info("3021064"); #echo get_playlist_info("22320356"); #echo get_music_lyric("29567020"); #echo get_mv_info();