使用虾米音乐API 搜索音乐

效果图

 



 

 


使用get方法访问相关页面 返回json数组

 

 

<?php
/**
 * music search action
 * @name music_name
 * @page 
 */

$name=get_input('name','aa');
$name = urlencode($name);
$page=max(1,intval(get_input('page',1)));
$url="http:/"."/www.xiami.com/app/nineteen/search/key/$name/page/$page/size/1?random=1123132112132";
$file_contents = file_get_contents($url);
echo $file_contents;
exit;

  js处理

 

/**
*根据虾米 搜索音乐
*/
elgg.thewire.musicSearch = music_search;
	function music_search(){
        var music_name=$('#music_name');
        var pages=$('#music_page').val();
        if(pages == null){
            pages = 1;
        }
        if(music_name.val()==''){
            alert('请输入需要搜索的歌名');
            music_name.focus();
            return false;
        }
        $('#music_list').html('<span style="color:red"><img src="<?php echo elgg_get_site_url()?>images/loading.gif">正在检索,请稍等...</span>');
        $.ajax({
            type:'post',
            url:elgg.security.addToken('<?php echo elgg_get_site_url()?>action/music/search'),
            data:{name:music_name.val(),page:pages},
            success:function(d){
                //alert(d);
                //	return false;
                d= eval('('+d+')');
                var json=eval(d.results);
                if(json.length>0){
                    var totle = d.total;
                    var num = Math.ceil(totle/8);

                    var phtml = page_html(pages,num);
                    //var phtml='';
                    $('#music_list').html('<ul class="tagB" style="display:block"><div id="add_ajax_favorite_tags" class="music_end"></div><div>'+ phtml +'</div></ul>');

                    for(var i=0; i<json.length; i++)  {
                        json[i].song_name = decodeURIComponent(json[i].song_name).replace(/\+|'|"/g," ");
                        json[i].artist_name = decodeURIComponent(json[i].artist_name).replace(/\+|'|"/g," ");
                        var html='<span οnclick="check_music('+json[i].song_id+',\''+decodeURI(json[i].artist_name)+'\',\''+decodeURI(json[i].song_name)+'\')" style="width:100%;cursor:pointer;" οnmοuseοver="$(this).css(\'color\',\'red\');" οnmοuseοut="$(this).css(\'color\',\'\');">'+decodeURI(json[i].song_name)+' ---  '+decodeURI(json[i].artist_name)+'</span>';
                        $('.music_end').append(html+'<br>');
                    }
                }else{
                    $('#music_list').html("未检索到符合条件的歌曲");
                }
            }
        });
};
/**
     * 制作虾米音乐的简单HTML分页代码 page:当前页 num:总页数
     */
    function page_html(page,num){
        page = parseInt(page);
        num = parseInt(num);

        var html = '';
        if(num < 2){
            return '';
        }
        if(page > 1){
            var fpage = page-1;
            html += '<span οnclick="changepage('+ fpage +');" style="cursor:pointer;">上一页</span>';
        }
        if(page < num){
            var npage = page+1;
            html += '<span οnclick="changepage('+ npage +');" style="cursor:pointer;">下一页</span>';
        }
        return html;
    }

    function changepage(page){
        $('#music_page').val(page);
        music_search();
    }

    //选择音乐
    function check_music(music_id,name,music_name){

        var content = music_name + '--' + name+' [music:'+music_id+']';
        //alert(content);
        var thewire=$('#thewire-textarea').val();
        if(thewire!=''){
            $('#thewire-textarea').val(thewire+content);
        }else{
            $('#thewire-textarea').val(content);
        }
        $("#music_show").hide();
    }


入库之后 查询匹配显示播放器

 

 

/**
 * 解析 音乐
 * @param type $text
 * @return type
 */
function parsemusic($text){
	$text=trim($text);
	$music_pattern='/(\[music:)(\d+)(\])/';
	$musci_html='<div class="feedUserImg"><embed width="257" height="33"wmode="transparent" type="application/x-shockwave-flash"src="http://www.xiami.com/widget/0_${2}/singlePlayer.swf"></embed></div>';
	$text= preg_replace($music_pattern,$musci_html,$text);
	return $text;
}
 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值