效果图
使用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 onclick="check_music('+json[i].song_id+',\''+decodeURI(json[i].artist_name)+'\',\''+decodeURI(json[i].song_name)+'\')" style="width:100%;cursor:pointer;" onmouseover="$(this).css(\'color\',\'red\');" onmouseout="$(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 onclick="changepage('+ fpage +');" style="cursor:pointer;">上一页</span>'; } if(page < num){ var npage = page+1; html += '<span onclick="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; }