优酷地址解析php源码

作者:matrix 发布时间:2014年3月4日星期二 分类:兼容并蓄 零零星星

优酷广告很烦人,还好有些脚本可以搞定。

譬如:http://userscripts.org/scripts/show/119622  效果很不错!

chrome的使用说明:https://www.hhtjim.com/to-youku-ad-script.html

此页面的源码已失效,最新>>php源码优酷视频解析更新 

解析优酷视频过程:

例:http://v.youku.com/v_show/id_XNjc1MDI4Nzg0.html

1.获取视频信息

http://v.youku.com/player/getPlayList/VideoIDS/XNjc1MDI4Nzg0

打开后可以看到视频相关信息。

需要其中的seed值、streamfileids里面hd2,mp4或者flv的值以及segs里对应k的值。

hd2、mp4、flv分别代表超清,高清以及标清。

2.拼接下载地址

最终形式:http://f.youku.com/player/getFlvPath/sid/00_00/st/$P0/fileid/$P1?k=$P2
$P0:如果选择mp4(即高清)则为mp4,其余为flv。
$P1:由解密函数getFileID()得到:(php版本)

function getFileIDMixString($seed)
        {
            $source = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890";
            $len = strlen($source);
            for ($i = 0; $i < $len; $i++)
            {
                $seed = ($seed * 211 + 30031) % 65536;
                $index = floor($seed / 65536 * strlen($source));
                $mixed .= $source[$index];
                $source = str_replace($source[$index],'',$source);
            }
            return $mixed;
        }
function getFileID( $fileid,  $seed  )
        {
            $mixed = getFileIDMixString($seed);
            $ids = explode("*",$fileid);
            for ($i = 0; $i < count($ids) - 1; $i++)
            {
                $idx = $ids[$i];
                $realId .= $mixed[$idx];
            }
            return $realId;
        }

说明:此为解密的关键函数,不是我写的,完全是依葫芦画瓢按照下面的C#代码而来:(解密函数getFileID()C#版本)

public static String getFileID(String fileid, double seed)
        {
            String mixed = getFileIDMixString(seed);
            String[] ids = fileid.Split('*');
            StringBuilder realId = new StringBuilder();
            int idx;
            for (int i = 0; i < ids.Length - 1; i++)
            {
                idx = int.Parse(ids[i]);
                realId.Append(mixed[idx]);
            }
            //Console.Write(realId.ToString());
            return realId.ToString();
        }
        public static String getFileIDMixString(double seed)
        {
            StringBuilder mixed = new StringBuilder();
            StringBuilder source = new StringBuilder("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890");
            int index, len = source.Length;
            for (int i = 0; i < len; ++i)
            {
                seed = (seed * 211 + 30031) % 65536;
                index = (int)Math.Floor(seed / 65536 * source.Length);
                mixed.Append(source[index]);
                source.Remove(index, 1);
            }
            return mixed.ToString();
        }

$P2:这个是segs里对应k的值。
如果选择flv(即标清)那么可以找到
"flv":[{"no":0,"size":"9932910","seconds":"277","k":"4be592cfae8eea21282826e4","k2":"167f8074bfb7bdca7"}]}
其中的4be592cfae8eea21282826e4就是$P2。

得到de $P0 、$P1和 $P2,拼接为视频地址:http://f.youku.com/player/getFlvPath/sid/00_00/st/$P0/fileid/$P1?k=$P2

如果视频有很多分段,变更一下$P2就行。

到这里就给个获取优酷地址的php源码:

源码[已经失效]:

提示: 此处内容需要评论本文后才能查看.

调用说明:/XXX.php?id=优酷视频的ID?d=1
d=1表示标清(flv),2表示高清,3表超清.若不写?d=*则默认输出FLV的画质
有些细节处的修改没有写出来,不过php里都是搞好了的。
标清测试:


高清测试:


超清测试:

另附接口:

优酷外链接口(wap地址),这个很简单:

视频:http://v.youku.com/v_show/id_XNjc1MDI4Nzg0.html

外链

http://m.youku.com/wap/pvs?format=3gphd&id=XNjc1MDI4Nzg0

56网:

视频:ht tp://www.56.com/u30/v_MTA3MDk0Nzg3.html

外链:

http://vxml.56.com/html5/MTA3MDk0Nzg3/     (算的上高清)

http://vxml.56.com/html5/MTA3MDk0Nzg3/?src=3g&res=qvga   (也就是手机上用的)

参考:http://blog.csdn.net/feige2008/article/details/8198434

修改WordPress邮件通知样式

作者:matrix 发布时间:2013年12月10日星期二 分类:Wordpress 兼容并蓄

邮件样式

邮件通知,每当有评论回复时系统会发送一封邮件告知被评论者。

WordPress上免插件实现的方法:http://www.cmhello.com/wordpress-comments-email-code.html

我选的第一种:所有回复都发送邮件通知。

$message='发送的邮件内容以及样式代码';

上面为邮件内容。

样式如上图,把发送的邮件内容以及样式代码改为下面代码:

<TABLE cellSpacing="0" cellPadding="0" width="618" align="center">
    <TBODY>
    <TR>
        <TD style="FONT-FAMILY: Tahoma,Helvetica,Arial,sans-serif; ">
            <TABLE style="FONT-SIZE: 12px; MARGIN: 0px auto; OVERFLOW: hidden; HEIGHT: auto" cellSpacing="0"
                   cellPadding="0">
                <TBODY>
                <TR>
                    <h1 id="logo">'.get_option('blogname').'</h1>
                </TR>
                <TR>
                    <TD style="OVERFLOW: hidden; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; HEIGHT: auto; BORDER-BOTTOM-STYLE: none">
                        <TABLE style="PADDING-RIGHT: 25px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN-LEFT: 27px; WIDTH: 588px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"
                               cellSpacing="0" cellPadding="0" border="0">
                            <TBODY>
                            <TR>
                                <TD style="BACKGROUND: url(http://a.xnimg.cn/imgpro/mail/edm-hot-bg-middleLeft.png); WIDTH: 17px"></TD>
                                <TD style="BACKGROUND: #fff">
                                    <DIV><IMG
                                            style="DISPLAY: block; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"
                                            src="http://a.xnimg.cn/imgpro/mail/edm-hot-bg-middleTop.png"></DIV>
                                    <TABLE style="MARGIN-TOP: 10px; MARGIN-LEFT: 13px; WIDTH: 500px" cellSpacing="0"
                                           cellPadding="0" border="0">
                                        <TBODY>
                                        <TR>
                                            <TD style="BACKGROUND: #fff" width="500"><H2
                                                    style="MARGIN-TOP: 10px; FONT-WEIGHT: bold; FONT-SIZE: 14px; MARGIN-LEFT: 0px">
                                                '.trim(get_comment($parent_id)->comment_author).' , Hello!</H2>
                                                <P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN-LEFT: 0px; LINE-HEIGHT: 12px; PADDING-TOP: 0px">
                                                    您曾在《'.get_the_title($comment->comment_post_ID).'》留言:</P>
                                                <p style="color: #777;border: 1px solid #DDD;padding: 5px 8px 5px 8px;background-color: #FCFCFC;border-radius: 3px 3px 3px 3px;font-size: 12px;line-height: 22px;font-family: Consolas,Courier,minispace,Lucida Console;">
                                                    '.trim(get_comment($parent_id)->comment_content).'
                                                </p>
                                                <P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN-LEFT: 0px; LINE-HEIGHT: 12px; PADDING-TOP: 0px">
                                                    '.trim($comment->comment_author).'给您的回复:
                                                </P>
                                                <p style="color: #777;border: 1px solid #DDD;padding: 5px 8px 5px 8px;background-color: #FCFCFC;border-radius: 3px 3px 3px 3px;font-size: 12px;line-height: 22px;font-family: Consolas,Courier,minispace,Lucida Console;">
                                                    '.trim($comment->comment_content).'
                                                </p>
                                                您可以点击<a href="'.htmlspecialchars(get_comment_link($parent_id)) .'"
                                                        target="_blank">查看回复的完整內容</a>
                                        </TR>
                                        <TR>
                                            <TD style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 15px; PADDING-TOP: 15px"
                                                colSpan="2"><IMG
                                                    style="DISPLAY: block; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"
                                                    src="http://a.xnimg.cn/imgpro/mail/edm-hot-line.png"></TD>
                                        </TR>
                                        </TBODY>
                                    </TABLE>
                                    <DIV><IMG
                                            style="DISPLAY: block; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"
                                            src="http://a.xnimg.cn/imgpro/mail/edm-hot-bg-middleTop.png"></DIV>
                                </TD>
                                <TD style="BACKGROUND: url(http://a.xnimg.cn/imgpro/mail/edm-hot-bg-middleRight.png); WIDTH: 17px"></TD>
                            </TR>
                            </TBODY>
                        </TABLE>
                    </TD>
                </TR>
                <TR>
                    <TD style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 15px; OVERFLOW: hidden; WIDTH: 100%; COLOR: #999; LINE-HEIGHT: 14px; PADDING-TOP: 15px; TEXT-ALIGN: center">
                        这是系统发给<A style="COLOR: #336699; TEXT-DECORATION: none">'.trim(get_comment($parent_id)->comment_author).'</A>的讯息,请勿回复。
                        欢迎再度光临 <a href="'.get_option('home') .'">'.get_option('blogname') .'</a>
                    </TD>
                </TR>
                </TBODY>
            </TABLE>
        </TD>
    </TR>
    </TBODY>
</TABLE>
<style type="text/css">
    body {
        font-size: 14px;
        font-family: arial, verdana, sans-serif;
        line-height: 1.666;
        padding: 0;
        margin: 0;
        overflow: auto;
        white-space: normal;
        word-wrap: break-word;
        min-height: 100px
    }

    td, input, button, select, body {
        font-family: Helvetica, \'Microsoft Yahei\', verdana
    }

    pre {
        white-space: pre-wrap;
        white-space: -moz-pre-wrap;
        white-space: -pre-wrap;
        white-space: -o-pre-wrap;
        word-wrap: break-word
    }

    th, td {
        font-family: arial, verdana, sans-serif;
        line-height: 1.666
    }

    img {
        border: 0
    }

    header, footer, section, aside, article, nav, hgroup, figure, figcaption {
        display: block
    }

    #logo {
        text-align: center;
    }

</style>

说明:

若出现问题,请尝试转换中文标点为英文的。

之前出现乱码,所以用的utf-8编码。

样式来自人人网邮件,

人人网邮件样式

图片素材都打包了,方便以后的本地化:

下载:http://www.400gb.com/file/42884686

http://pan.baidu.com/s/1xjiZ7

参考:http://www.cxsir.com/wordpress-email-style.html

网络抓包工具

作者:matrix 发布时间:2013年12月7日星期六 分类:兼容并蓄 零零星星

推荐使用圣杯Charles 垮多平台。可实现数据拦截 并发请求 网速模拟测试等等 -- 201810
https://www.charlesproxy.com/
windows fiddler也可推荐。


平时东看西看的了解到什么抓包的,完全没玩过~

留个备份,以后会用到。

Charles

圣杯Charles 毫无疑问 TOP1.

官网最新版:https://www.charlesproxy.com/download/
4.0.1版本:https://www.charlesproxy.com/assets/release/4.0.1/charles-proxy-4.0.1-win64.msi
4.0.1 破解jar包:charles.jar

替换掉原文件夹里的charles.jar
Mac: /Applications/Charles.app/Contents/Java/charles.jar
Windows: C:\Program Files\Charles\lib\charles.jar

Smsniff2.00简体中文版

来自:http://www.ifoouu.com/note/75.html

下载:http://pan.baidu.com/s/1w2MJK

说明:smsniff 网络抓包工具可以通过你的网络适配器捕获TCP/IP数据包,并查看捕获客户端和服务器之间的数据序列的会话。

HTTP数据抓包(Fiddler2) V2.2.0 绿色中文版

来自:http://www.cr173.com/soft/42248.html

下载:http://pan.baidu.com/s/1Aaafx

说明:通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。

WSExplorer 进程抓包工具1.3绿色中文版

下载:

http://www.cr173.com/soft/17693.html

http://pan.baidu.com/s/1sjnnPYd

WSExplorer抓包工具

软件也不错,跟Smsniff差不多,但是能够抓取相关进程的网络交互数据。

更换主题-freshwp_绝对的小清新

作者:matrix 发布时间:2013年12月6日星期五 分类:Wordpress 兼容并蓄

freshwp

这个主题是之前提到过的NGRO主题,很好看~ freshwp

在NGRO.ORG上看到,绝对是最喜欢的主题,没有之一。可惜NGRO.ORG没有公开,再加上是typecho的更抽了~

不过就算是typecho的,我也愿意为了这主题换博客程序。据说typecho还是超轻型的,比起WordPress好得多。嗯  之后也就到处找此款主题的相关信息,结果是弄到了别人扒下来的皮。不错 很感谢sunhua.me。地址:诡异:TEer扒TE皮NGRO

这主题是由typecho默认主题改过来的,变化很大。想到typecho的轻巧,WordPress又舍不得某些功能 ,纠结。最后妥协于wp的某个JB功能,去找各类关于typecho主题移植到WordPress的方法,结果都是wp到tc的 ,真是恼火。庆幸我的运气不是一般的好,看到winysky.com的 wordpress版本的typecho皮肤 哈哈 有救了。那扒的皮就是源于那tc皮肤,打开一看的确一样的结构设计。这下简单多了,覆盖style,修改简单的css、php代码。一个具有基本功能的wp主题就出现了,哎  我真人才啊,这都鼓捣的出来。还TMD不是学计算机的 ➡ 搞的建筑工程。

这下就整理完善需要的功能到fresh就OK啦,直到这时间才发文。

freshwp:清新-wp

之前用的是自说me话的增强版philna主题(备份下载:http://www.400gb.com/file/40436320)。

后来换的BLUE2.0(七彩之家修改于inv的cms主题),这个相对于以前来还好些。(备份下载:http://www.400gb.com/file/40816608

这回来就换了这个,小清新  大爱~ 😉

 

 

 

更新百度网盘外链方法_无数据库缓存_仅供测试

作者:matrix 发布时间:2013年12月4日星期三 分类:兼容并蓄 零零星星

测试地址:

http://link.hhtjim.com

采用最新的本人无数据库缓存10min,绝对不靠谱,仅供测试!

警告:以下内容属于充字数类型且杂乱无章,需要外链功能的请戳上面的地址~

上个月,百度网添加了验证码功能导致以前抓取外链的方法都失效。度娘终于爆发了~

刚开始还没注意到验证码的存在,只要一连几次下载文件就会出现验证码窗口

验证码窗口

经过N次的文件下载,看到了度娘的脾气。

也就只允许你前3次下载免验证码,后面你要下载的话那就只有手动输入了。

抓到某个下载地址:

http://small.cdn.baidupcs.com/file/2c808f328bec8fa44d5ac5e2e42985d2?xcode=e0ad680ebd95ea801d4878451d04d36328f07d27337bcbfd0b2977702d3e6764
&fid=1178024267-250528-2238604782
&time=1386087754
&sign=FDTAXER-DCb740ccc5511e5e8fedcff06b081203-w%2FMs%2B2m13ixmrRpD2s11F01H6b4%3D
&to=sc
&fm=Q,B,U,nc
&expires=1386088354
&rt=sh
&r=860261331
&logid=2869754983&sh=1&vuk=3238236832
&fn=文件名

上面的fid、time、sign还能从页面处找到,有些参数根本就看不到。

time和expires参数都是unix时间戳,后者的意思是过期时间。时间相差600秒,也就10分钟。

在这10分钟之内这个地址都是有效的, 😉  那就有点头绪了。

抓取页面的必备参数,获取下载地址,再用session会话缓存那个下载地址,10分钟内有效或者再自动检测。

最爽的是第一次弄免数据库缓存,庆幸书上有session会话的相关章节  哈哈。

再手动下载几次就抓到了获取下载地址的URL:

http://pan.baidu.com/share/download?bdstoken=null&uk=&shareid=&fid_list=[]&sign=&timestamp=

看到那几个参数,笑了~

之后就是好几天的编写、测试下载,期间有看书整了个最基本的类 。 额  面向对象 。

源码就暂时为空。

提醒的是度娘这回要检测referer,跟360云盘一样的只能外链下载无法外链播放。自己试试就晓得~

所以我把link.hhtjim.com页面的那个下载按钮去掉了 ,TMD浏览器发送当前URl的referer是没法改的。无语啊~

先放个测试期间最早版本的cookies缓存源码

<?php  
error_reporting(0);//禁用错误报告  
  function curl_get($url,$post=false,$carry_header=true,$REFERER_=false,$useragent=false,$add_arry_header=null){  
        $ch=curl_init($url);  

        if($carry_header){  
            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($add_arry_header){  
            curl_setopt($ch, CURLOPT_HTTPHEADER, $add_arry_header);  
        }  
        if ($post) {  
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post);  
        }  
        if($REFERER_){  
            curl_setopt($ch, CURLOPT_REFERER,$REFERER_);  
        }  
        if($useragent){  
            curl_setopt($ch, CURLOPT_USERAGENT, $useragent);  
        }  

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
        $get_url = curl_exec($ch);  
        curl_close($ch);  
        return $get_url;  
    }  

preg_match('|u=(.*)|',$_SERVER["REQUEST_URI"],$bai_res);  
$bai_=curl_get($bai_res[1]);  

preg_match('|shareid=\"(\d+)\"\?\"\1\":\"\";FileUtils\.uk=\"(\d+)\"\?\"\2\"|',$bai_, $ui); 
preg_match('|fs_id\D+(\d+)\D+app_id|',$bai_,$fid); 
preg_match('|timestamp=\"(\d+)\"|',$bai_,$time); 
preg_match('|downloadsign=\"(\w+)\"|',$bai_,$login); 
$diz="http://pan.baidu.com/share/download?bdstoken=null&uk=$ui[2]&shareid=$ui[1]&fid_list=[$fid[1]]&sign=$login[1]&timestamp=$time[1]&bdstoken=null&channel=chunlei&clienttype=0&web=1";  
$header[]= 'Cookie: BAIDUID=*****';    //请使用自个儿的百度ID,度娘会检查这个的cookies

if(isset($_COOKIE["du$ui[2]-$ui[1]"])){ 
//header( "Location: $_COOKIE["du$ui[2]-$ui[1]"]"); 
echo $_COOKIE["du$ui[2]-$ui[1]"]; 
}else{ 
$dl=curl_get($diz,null,$header,$bai_res[1],null,$header); 
$obj=json_decode($dl,true); 
if($obj['errno']!='0'){ 
//header( "Location: $bai_res[1]"); 
echo $bai_res[1]; 
} 
setcookie("du$ui[2]-$ui[1]",$obj['dlink'],time()+3600*24); 
//header( "Location: $obj['dlink']");  
echo $obj['dlink'];  
}  
?>  

这个能不能用就靠你怎么使了,仅是原理。

如果你即刻需要外链,请到http://link.hhtjim.com玩玩~

祝你好运!

博客也快一个月都没有更新了,不码点字不好~

直接下载google play应用-APK Downloader

作者:matrix 发布时间:2013年11月8日星期五 分类:兼容并蓄

想要从 google Play 直接下载到 APK 文件的确是很麻烦的事情。

有了APK Downloader,那就可以直接下载应用。

地址

http://apps.evozi.com/apk-downloader/

说明:

输入框里填写google paly的应用地址

https://play.google.com/store/apps/details?id=org.leetzone.Android.yatsewidgetfree&hl=zh_CN

回车之后就有直接下载的那绿色按钮了

图片4780-直接下载google play应用-APK Downloader

其他

20151016 P.S. apkpure同样可以

http://apkpure.com/

180322 P.S.
https://www.apkmirror.com
https://www.apklinker.com

190219 P.S.
https://apk-dl.com

参考:
http://www.freegroup.org/2013/11/apk-downloader/
http://www.appinn.com/apkpure/

添加wordpress后台验证功能

作者:matrix 发布时间:2013年11月4日星期一 分类:Wordpress 兼容并蓄

加强博客后台的登录安全 wowordpress验证码插件曾尝试用在后台的验证功能上面,但这东西不靠谱 也就放弃。

不过看到 乜都讲D 的方法,很不错~  免插件

代码:

<?php

function bd_login_form()  
{  
?>  
    <p>  
        <label for="user_pass_2">身份认证<br />  
        <input type="password" name="pwd_2" id="user_pass_2" value="" size="20" tabindex="20" /></label>  
    </p>  
<?  
}  
add_action('login_form', 'bd_login_form');  

function bd_authenticate_username_password($user, $username = '', $password = '')  
{  
    if ( isset($_POST['log']) )  
    {  
        $bDone = false;  
        if ( isset( $_REQUEST['pwd_2'] ) )  
        {  
            $pwd2 = $_REQUEST['pwd_2'];  
            if ( $pwd2 === '123' ) // 自由修改认证码  
                $bDone = true;  
        }  
        if ( $bDone == false )  
        {  
            remove_filter('authenticate', 'wp_authenticate_username_password', 20, 3);  
            $error = new WP_Error();  
            $error->add('incorrect_password', __('<strong>错误</strong>:身份认证失败。'));  
            return $error;  
        }  
    }  
    return $user;  
}  
add_filter('authenticate', 'bd_authenticate_username_password');  

?> 

说明:

此代码来自向WP登陆页加验证框 ,就改了几个字。

第22行123为认证密码,注意修改~

将上面代码保存到主题目录的functions.php使用。

微云网盘外链php源码

作者:matrix 发布时间:2013年10月26日星期六 分类:兼容并蓄 零零星星

微云

微云网盘的10TB空间也要全部利用起来。

申明:此页面的源码已失效,走这里查看最新>>微云网盘php解析源码_更新

外链转换工具:http://link.hhtjim.com/

代码来自破博客

<?php  
//提取微云分享地址  
preg_match('|\/.+\/(\w+)|', $_SERVER['REQUEST_URI'], $res);  
$key = $res ? $res[1] : exit("weiyun URL error!");  
$url = $referer = "http://share.weiyun.com/$key";  
$useragent = "BlackBerry/3.6.0";  

//匹配出下载地址  
$curl = curl_init($url);  
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($curl, CURLOPT_USERAGENT, $useragent);  
curl_setopt($curl, CURLOPT_TIMEOUT, 10);  
$src = curl_exec($curl);  
curl_close($curl);  
preg_match('|http://.+sharekey[^"]+|', $src, $res);  
$url = $res ? $res[0] : exit("weiyun URL error! Not find weiyun code!"); 

//伪造referer,获取返回的响应头信息 
$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_HEADER, 1); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_REFERER, $referer);  
curl_setopt($curl, CURLOPT_USERAGENT, $useragent); 
curl_setopt($curl, CURLOPT_TIMEOUT, 10); 
$src = curl_exec($curl); 
curl_close($curl); 

//从响应信息头匹配出真实的文件地址并下载 
preg_match('|Location: (.+)\r|', $src, $res); 
$songurl = $res ? $res[1] : exit("Can not get WeiYun Download url!"); 
header("Location: $songurl");  
//echo $songurl;  
?>  

这种方法该不错滴。

使用示例:http://XXX.php/微云URL

http://share.weiyun.com/b500a423288e8d0095d49657fe21438b 阅读剩余部分 »