Beispiel #1
0
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;
    }
}
Beispiel #2
0
<?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);