PHP网页编程之用PHP猎取虾米音乐网的下载链接
学校并没有那么多的时间可以让我们在实际开发上面。做链接转换的时分碰到的。虾米的链接解密有点烦,解法是我看他人的源码失掉的。然后我把他改写成了PHP的版本。贴出来,有必要的就拿往用~$mp3_id=;//音乐IDfunctionunescape($str){$str=rawurldecode($str);preg_match_all("/(?:%u.{4}).{4};&#d+;.+/U",$str,$r);$ar=$r;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;$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;$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成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。 写的比较杂,因为我也是个新手,不当至于大家多多指正。
页:
[1]