|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
学校并没有那么多的时间可以让我们在实际开发上面。做链接转换的时分碰到的。虾米的链接解密有点烦,解法是我看他人的源码失掉的。然后我把他改写成了PHP的版本。贴出来,有必要的就拿往用~
$mp3_id=;//音乐IDfunctionunescape($str){$str=rawurldecode($str);preg_match_all("/(?:%u.{4}).{4};&#d+;.+/U",$str,$r);$ar=$r[0];foreach($aras$k=>$v){if(substr($v,0,2)=="%u"){$ar[$k]=iconv("UCS-2","utf-8//IGNORE",pack("H4",substr($v,-4)));}elseif(substr($v,0,3)==""){$ar[$k]=iconv("UCS-2","utf-8",pack("H4",substr($v,3,-1)));}elseif(substr($v,0,2)=="&#"){echosubstr($v,2,-1)."";$ar[$k]=iconv("UCS-2","utf-8",pack("n",substr($v,2,-1)));}}returnjoin("",$ar);}$x_url="http://www.xiami.com/song/playlist/id/".$mp3_id."/object_name/default/object_id/0";$x_con=file_get_contents($x_url);preg_match_all("/<location>(.*?)</location>/s",$x_con,$locations);$str=$locations[1][0];$num=substr($str,0,1);$inp=substr($str,1);$iLe=strlen($inp)%$num;$a=0;$ret=;$arr=array();for($i=0;$i<$num;$i++){$arr[$i]=($iLe>$i?1:0)+(strlen($inp)-$iLe)/$num;}for($i=0;$i<$arr[1];$i++){$a=0;for($j=0;$j<$num;$j++){$ret.=substr($inp,$a+$i,1);$a+=$arr[$j];}}$ret_url=unescape($ret);$url=str_replace(^,0,$ret_url);$url=str_replace(+,,$url);$url=preg_replace(/.mp(.*)/,.mp3,$url);echo$url;PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。 |
|