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; } }
<?php //从文件读取歌曲名称,批量获取歌曲信息 require 'api.php'; header("Content-Type:text/html; charset=utf-8"); $names = file('file.txt'); //file()将整个文件读到一个数组,一行算一个元素 foreach ($names as $name) { $json = music_search($name, "1"); $arr = json_decode($json, true); // true转换为数组,省略转换为对象 $result = $arr['result']; $song = $result['songs'][0]; $music_name = $song['name']; // 歌名 $music_url = $song['mp3Url']; // mp3外链 $music_url = substr($music_url, 24); //去除服务器前缀地址http://m1.music.126.net/ $picUrl = $song['album']['picUrl']; // 歌曲封面链接 $album_name = $song['album']['name']; // 专辑名称 //判断是否为p3服务器,若为p3服务器切换为p4服务器 $p3 = substr($picUrl, 8, 1); if ($p3 == '3') { $picUrl = str_replace("p3", "p4", $picUrl); } $artist_name = $song['artists'][0]['name']; // 歌手 print_r($music_name . ' ' . $artist_name . ' ' . $album_name . '<br>' . $music_url . '<br>' . $picUrl);