添加虾米音乐外链-用php接口获取虾米音乐外链地址

作者:matrix 发布时间:2013-09-02 分类:零零星星

转换地址:http://link.hhtjim.com

虾米音乐外链界面

 

外链接口已经修改,请到link.hhtjim.com转换)

接口地址:https://www.hhtjim.com/xiami.php?u=虾米网音乐地址

虾米网音乐地址例如:http://www.xiami.com/song/1772146363?spm=a1z1s.6659513.0.0.eu3WwL

或者http://www.xiami.com/song/1772146363放到接口地址上都可以调用自动下载。

用过上次百度网盘外链应用再升级的模板后觉得js的就是漂亮,再借着 Liang's 源码,拿着.htaccess伪静态实现外链地址静态化的实践成果搞定起来的确没那么大的障碍了。

记录过程:

一.修改php源码,添加取得虾米网音乐地址的id值,也就是下面代码的 变量$mp3_id


<?php /*取得song/后面的音乐ID:$MUsicID 正确链接例如:http://www.xiami.com/song/1772146363?spm=a1z1s.6659513.0.0.eu3WwL 若链接这样http://www.xiami.com/song/play?ids=/song/playlist/id/175153022/object_name/default/object_id/0 则需要 $aa = explode('/',$getturl); $mp3_id = $aa[8]; //第8个数组 */ isset($_GET['u']); $quurl = $_GET['u']; $getturl = $quurl; $aa = explode('/',$getturl); $mp3_id = $aa[4];

代码说明:取得网址的U参数(也就是那虾米的音乐网址)的值后再以“/”分割字符串,得到第4个数组。下面会需要网址跳转,尾巴上添加header("Location: $url");

笔记:

示例地址:http://www.xiami.com/song/1772146363?spm=a1z1s.6659513.0.0.eu3WwL  以“/”分割字符串

第一数组:http:/ (像是吧)

第二数组:www.xiami.com

第三:song

第四:1772146363?spm=a1z1s.6659513.0.0.eu3WwL

奇怪的是将带有?spm=a1z1s.6659513.0.0.eu3WwL 的音乐id值带入到获取音乐id的php中竟然正常返回外链地址。这里只带入音乐id也是正确的。

explode()函数参考:http://www.w3school.com.cn/php/func_string_explode.asp

二.想的是由我这www.hhtjim.com的链接跳转到虾米的直链,这就需要添加伪静态规则。

RewriteRule ^xiami/([0-9]+)\.mp3?$ /xiami.php?u=http://www.xiami.com/song/$1 [L]  

说明:

http:// w w w . hhtjim.com/xiami.php?u=http://www.xiami.com/song/1770832884

===>跳转到

http://w w w . hhtjim.com/xiami/1770832884.mp3

三.之后再修改 虾米音乐外链 | HHTJim.Com Web App 就可行啦! 哈哈。

这个模板的功能是用js写的。部分js代码:

  <script type="text/javascript">
        function getNewLink() {
            var inputUrl = document.getElementById("inputUrl");
            var file_value = "";
            var file_type = document.getElementsByName("file_type");
            var hostname = "http://" + "www.hhtjim.com" + "/xiami/";//window.location.hostname为本地url.可替换掉www.hhtjim.com
            for (var i = 0; i < file_type.length; i++) {
                if (file_type[i].checked) {
                    file_value = file_type[i].value;
                    break;
                }
            };
            var file_other = document.getElementById("file_other");
            file_other_text = document.getElementById("file_other_text");
            var outputUrl = document.getElementById("outputUrl");
        var abc = inputUrl.value.substring(inputUrl.value.indexOf('g/') + 2);
     //  var abc = inputUrl.value.substring(inputUrl.value.indexOf('g/') + 2 ,inputUrl.value.indexOf('?spm') );
      // var abc = inputUrl.value.substring(inputUrl.value.indexOf('id/') + 3 ,inputUrl.value.indexOf('/ob') );
  // indexOf():http://www.w3school.com.cn/js/jsref_indexOf.asp
  //replace():替换用 http://www.w3school.com.cn/js/jsref_replace.asp
  //substring():http://www.w3school.com.cn/js/jsref_substring.asp
// test():http://www.w3school.com.cn/js/jsref_test_regexp.asp
//var reg = /^\d+\/xiami\/+\d+$/;//注意\后面的/
var reg = /^([0-9]+)+$/;
            if (!reg.test(abc)) {
                alert("链接错误,请核对尺码后入座!!!再点击获取~");
                inputUrl.focus();
                return false;
            }
            if (file_value == 'other') {
                  outputUrl.value = hostname + abc + "." + "mp3";
            } else {
                outputUrl.value = hostname + abc + "." + "mp3";
            }
        }
    </script>

又要用到js,再笔记下。

var abc:申明变量abc

indexOf()确定某个字符首次出现的位置,函数参考:http://www.w3school.com.cn/js/jsref_indexOf.asp

replace()替换作用,参考: http://www.w3school.com.cn/js/jsref_replace.asp

substring()根据indexOf()确定某个字符首次出现的位置来提取字符串,参考:http://www.w3school.com.cn/js/jsref_substring.asp

test()比较字符串,参考:http://www.w3school.com.cn/js/jsref_test_regexp.asp

还有就是正则表达式,这里用的/^([0-9]+)+$/来表示全数字的音乐id。

目前虾米音乐外链 | HHTJim.Com Web App支持3种虾米的url来转换,都是歌曲单文件,其实最终只是获得那个id,都可以自己的手动改的。

1.例如:http://www.xiami.com/song/1819190

2.例如:http://www.xiami.com/song/1819190?spm=a1z1s.6659513.0.0.BMIFmS

3.例如:http://www.xiami.com/song/play?ids=/song/playlist/id/1819190/object_name/default/object_id/0

其余的额也没什么可记。

Liang  在http://www.ifoouu.com/note/47.html贴出的源码正是太漂亮了,给出音乐id就可以得到外链地址。再次 感谢!


10-3添加更精简的php获取方法:

 

<?php
    function curl_get($url,$post=false,$carry_ua=true){
        $ch=curl_init($url);
        if($carry_ua){
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent:Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7D11 Safari/528.16'));
        }
        if ($post) {
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        }
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $get_url = curl_exec($ch);
        curl_close($ch);
        return $get_url;
    }
     //echo curl_get($st_url);
                 $st_url='http://www.xiami.com/song/1772222342';
            $st_con=curl_get($st_url);
            //$st_rex="/src='(.*?)'>Your browser/";
            $st_rex="/\"url\":\"(.*?)\",\"/";
            preg_match($st_rex, $st_con,$st_matchs);
            $st_rurl=$st_matchs[1];
            $st_head='m'.rand(0,9);
            $st_rurl=str_replace('mg', $st_head, $st_rurl);
            $real_file_url = $st_rurl;
            $real_file_url = str_replace('\\','',$real_file_url);//将\删除
            echo $real_file_url;
?>

说明:其中16行的URL地址为虾米网的音乐链接

代码来自LIANG的http://www.ifoouu.com/note/68.html中提取。

curl的确好啊


14-3-16 添加官方虾米接口:

例:http://www.xiami.com/app/iphone/song/id/1772222342
打开后可以看到:

{"song_id":"1772222342","default_resource_id":"10855342","length":"250","category":null,"listen_file":"\/aliyunos\/874\/117874\/1680443259\/1772222342_10855342_l.mp3","album_id":"1680443259","name":"\u4f60\u7684\u6211\u7684","artist_name":"\u6881\u535a","artist_id":"117874","title_url":"nidewode","recommends":"331","singers":"\u6881\u535a","title":"\u4f60\u7684\u6211\u7684","album_logo":"http:\/\/img.xiami.net\/images\/album\/img74\/117874\/16804432591380527751_2.png","location":"http:\/\/m5.file.xiami.com\/874\/117874\/1680443259\/1772222342_10855342_l.mp3?auth_key=d94ae2db825f166c3c76c901ae79343c-1395014400-0-null","low_size":"10023705","file_size":null,"low_hash":"d272d5c12629274af5ed42d71d51fb55","whole_hash":"d272d5c12629274af5ed42d71d51fb55","content_hash":"d272d5c12629274af5ed42d71d51fb55","content_size":"10023705","lock_lrc":"2","lyric":"http:\/\/img.xiami.net\/lyric\/42\/1772222342_13804511043990.lrc","year_play":"0","grade":"-1","album_url":"http:\/\/www.xiami.com\/app\/iphone\/albuminfo?id=1680443259&amp;uid=","artist_url":"http:\/\/www.xiami.com\/app\/iphone\/artistinfo?id=117874&amp;uid=","isad":"0"}

里面的location即mp3下载地址。

14-07-19 添加虾米歌曲链接地址破解算法

php代码:

$id = '1772222342';//虾米音乐ID
$DataUrl = 'http://www.xiami.com/widget/xml-single/uid/0/sid/'.$id;//xml数据
$xml_array=simplexml_load_file($DataUrl); //将XML中的数据,读取到数组对象中
foreach($xml_array as $tmp){
    $location =  $tmp->location;
}
echo de_Location($location);
/*
    虾米下载地址解码函数@de_Location
    github项目:https://github.com/Flowerowl/xiami/blob/master/xiami.php
*/
function de_Location($location){
        $loc_2 = (int)substr($location, 0, 1);
        $loc_3 = substr($location, 1);
        $loc_4 = floor(strlen($loc_3) / $loc_2);
        $loc_5 = strlen($loc_3) % $loc_2;
        $loc_6 = array();
        $loc_7 = 0;
        $loc_8 = '';
        $loc_9 = '';
        $loc_10 = '';
        while ($loc_7 < $loc_5){
            $loc_6[$loc_7] = substr($loc_3, ($loc_4+1)*$loc_7, $loc_4+1);
            $loc_7++;
        }
        $loc_7 = $loc_5;
        while($loc_7 < $loc_2){
            $loc_6[$loc_7] = substr($loc_3, $loc_4 * ($loc_7 - $loc_5) + ($loc_4 + 1) * $loc_5, $loc_4);
            $loc_7++;
        }
        $loc_7 = 0;
        while ($loc_7 < strlen($loc_6[0])){
            $loc_10 = 0;
            while ($loc_10 < count($loc_6)){
                $loc_8 .= isset($loc_6[$loc_10][$loc_7]) ? $loc_6[$loc_10][$loc_7] : null;
                $loc_10++;
            }
            $loc_7++;
        }
        $loc_9 = str_replace('^', 0, urldecode($loc_8));
        return $loc_9;
    }

github:https://github.com/Flowerowl/xiami

参考:http://www.myhack58.com/Article/html/3/92/2013/38705.htm

MP3 TEST :

http: / / link.hhtjim.com/xiami/1772355885.mp3

WordPress中添加评论Ctrl+Enter快捷回复

作者:matrix 发布时间:2013-09-01 分类:Wordpress 兼容并蓄

修改TC_NGRO主题时发现提交评论没有Ctrl+Enter快捷回复,而现在的主题一般都有此功能 很实用。

TC_NGRO主题wordpress版

在comments.php中找到类似代码

<p><textarea rows="5" cols="50" name="comment" class="textarea" id="comment"></textarea></p>  
<p><input type="submit" value="<?php _e('提交评论/Ctrl+Enter'); ?>" id="submit" class="submit" /><?php comment_id_fields(); ?> </p>  

要确保<textarea中的name、id的值与下面的js代码中的第2行处的值(此处为comment)对应一致。

<input中的 type、id的值下面的js代码中的第12行处的值(此处为submit)对应一致。

在</form>下行处添加js代码:

<script type="text/javascript">  
document.getElementById("comment").onkeydown = function (moz_ev)  
{  
var ev = null;  
if (window.event){  
        ev = window.event;  
    }else{  
        ev = moz_ev;  
    }  
if (ev != null && ev.ctrlKey && ev.keyCode == 13)  
    {  
        document.getElementById("submit").click();  
    }  
}  
</script>  

添加js抖动特效-鼠标悬停图片文字抖动

作者:matrix 发布时间:2013-08-13 分类:Wordpress 兼容并蓄

jquery

WordPress添加js抖动特效  效果不错!

在header.php添加代码:

<script type="text/javascript" src="/js/jquery-1.4.2.min.js"></script>  
<script type="text/javascript" src="/js/jquery.doudong.js"></script>  
<script type="text/javascript">  
//抖动特效  
$(document).ready(function(){  
    $('.logo,#bot_mainr').shake();  
});  
</script>  

说明:

第1、2行的js文件时必须加载的,如果加载了JQ库就不用加载jquery-1.4.2.min.js文件。

第6行的.logo 和#mainr是设定的抖动标签和样式。

js下载:http://189.io/gLwunn

代码来自:http://www.17sucai.com/pins/505.html

水果忍者网页版

作者:matrix 发布时间:2013-01-18 分类:兼容并蓄

用 HTML5 和 Javascript 仿制一个水果忍者网页版!

它由百度js小组开发的一款开源网页游戏,游戏的手感和音效与原版相差无几,你可以无需安装,不用手机,打开浏览器就直接玩!

地址:http://nus40g1.chinaw3.com/demos/fruit-ninja/

水果忍者网页版

 

github:https://github.com/ChineseDron/fruit-ninja

解除右键限制

作者:matrix 发布时间:2012-07-03 分类:兼容并蓄

如果你不想你的博客文章或是站点内容被轻易复制截取,可以采用本文所述方法,但是,这样会影响用户浏览的满意程度(个人感觉~),所以如果不是被盗版得非常严重的情况下, 不推荐使用这种限制手段,毕竟如果人家真心想要采集你站点的内容,还是有办法实现的。

限制代码:

在body标签加入以下内容即可~

 

<body oncontextmenu=’return false’ ondragstart=’return false’ onselectstart=’return false’ onselect=’document.selection.empty()’ oncopy=’document.selection.empty()’ onbeforecopy=’return false’ oncut=”return false;”>

那么解除限制的方法是:

javascript:(function() { function R(a){ona = “on”+a; if(window.addEventListener) window.addEventListener(a, function (e) { for(var n=e.originalTarget; n; n=n.parentNode) n[ona]=null; }, true); window[ona]=null; document[ona]=null; if(document.body) document.body[ona]=null; window.document.body.oncopy=”";} R(“contextmenu”); R(“click”); R(“mousedown”); R(“mouseup”); R(“selectstart”);})()

直接在浏览器地址栏运行此段代码 or 将此段代码保存为书签,需要解除时点一下书签,皆可~

来自:

http://www.chnfree.com/copylimit/

图片时载入的渐显特效JQuery

作者:matrix 发布时间:2011-10-01 分类:Wordpress 兼容并蓄

图片时载入的渐显特效JQuery

最新文章查看>>完善lazyload懒加载图片渐显特效

 

特效优点:

  1. 加速WordPress站点的页面载入速度;
  2. 不唐突的图片渐显方式;
  3. 代码精简,便于操作维护,js代码仅仅 1.6KB  先决条件是:你的站加载了 Jquery.js

原理:

这个特效是少有的即华丽又加速的效果,因为它能判断访客是不是在查看当前图片,若则加载预留的填充图片 grey.gif ,等到访客滑动鼠标滑轮或浏览到图片位置时,真正的图片地址才会加载。
也就是说,如果访客瞬间打开你的页面,然后瞬间关闭,处于页脚的图片是不被加载的,何乐而不为呢?
不用担心对访客的友好程度,这个效果会在图片即将被浏览到的时候就开始加载图片。

实现方法:

 jquery.lazyload.js
预填充图片 fill.gif

下载地址:

http://www.400gb.com/file/29068037

http://yfdisk.com/file/hhtjim/fe2ac2cd/

http://pan.baidu.com/share/link?shareid=1087994774&uk=3238236832

阅读剩余部分 »

分享5个有趣的 JavaScript 代码

作者:matrix 发布时间:2011-08-13 分类:Wordpress 兼容并蓄

js很多人认为编程语言只是用于工作,没有什么乐趣,其实,只要我们发挥奇思妙想,再死板的东西也有有趣的一面。这篇文章告诉大家:使用JavaScript,可以做很多很多有趣的事情。以下代码拷贝到地址栏回车即可运行,赶紧试试吧。

1. 网页射击游戏

这个游戏可以在任何网页里面玩,把下面代码粘贴到地址栏回车,按空格键进行射击,W键可前进,A、D键或者方向键可改变射击方向。 阅读剩余部分 »

Feed2JS实现JS的外部调用

作者:matrix 发布时间:2011-04-30 分类:兼容并蓄

feedfeed2js顾名思义就是将Feed内容以js方式输出,便于嵌入页面中,做成文章列表。不单适用于Wordpress,任何博客程序以及免费博客甚至网站,只要支持RSS Feed就可以适用。你甚至可以利用它来做一个简易的RSS阅读器。

网址:http://feed2js.org/index.php?s=build

在页面中URL地址栏输入RSS Feed地址,再在下面选项中进行一些设置。
比如:Number of items to display设置显示条数
中文内容会出现乱码选上UTF-8 Character Encoding即可
点页面右边的Preview Feed可以预览效果,Generate JavasScript生成JS代码。

我的设置: http://feed2js.org/index.php?s=build&src=http%3A%2F%2Fhhtjim.com.nu%2Findex.php%2Ffeed&generate=Generate+JavaScript&chan=n&num=0&desc=0&au=n&html=n&date=n&tz=feed&targ=y&utf=y&pc=y&rss_box_id

来自:free8.com