Home  >  Article  >  php教程  >  PHP获取各大视频网站页面中的Flash播放地址

PHP获取各大视频网站页面中的Flash播放地址

WBOY
WBOYOriginal
2016-06-02 10:33:352916browse

有很多朋友做电影网站都是直接用大视频网站的flash播放地址了,这样如果我们不影响到自己网服务器,下面小编来给大家介绍一下利用PHP获取各大视频网站页面中的Flash播放地址实例。

先看一个简单的

然后我用PHP实现了这个功能,我觉得用PHP来做这项工作简直是一种享受!使用其提供的强大的HTML页面处理函数和正则表达式,短短的几行代码就能搞定这个功能。

 贴一下关键代码:

//获取优酷页面中的flash地址

function get_flash_url($url) {

    $lines = file($url);

    foreach ($lines as $linenum => $line) {

        preg_match_all('||', $line, $result);

        $swfurl = $result[1][0];

        if (!empty($swfurl)) return $swfurl;

    }

}

?>

$url = $_SERVER["QUERY_STRING"];

$flashurl = get_flash_url($url);

echo ($flashurl);

?>

比如这个文件我们存为 test.php,那么我们只需要运行 test.php?优酷视频的url 就可以解析出FLASH地址了。

 

思路很简单,就是先看看优酷视频网页的HTML代码里关键FLASH地址那段的特征。随便找个网页,比如我们可以看到这一段:

flash地址:

然后使用正则表达式来将其中的地址段匹配掉,就OK了,上面只是单个的,后来找到一个升级的方法,可以自动获取各大视频网站flash视频播放地址。

目前已支持新浪播客、优酷网、土豆网、酷6网、搜狐视频、56网、奇艺网、凤凰网等视频网站的视频播放页链接。

<?php
if (!empty($_GET[&#39;url&#39;])) {
    $web_video = new free_flash_video();
    $web_video->index();
}
/**
 * 获取视频地址
 * @author qiufeng <fengdingbo@gmail.com>
 * @link http://www.fengdingbo.com
 *
 */
class free_flash_video {
    public function index() {
        // 获取正常视频地址
        $url = $_GET[&#39;url&#39;];
        if ($url) {
            $parse = parse_url($url);
            isset($parse[&#39;host&#39;]) && $host = $parse[&#39;host&#39;];
            $methods = array(
                "www.tudou.com" => "tudou",
                "v.youku.com" => "youku",
                "v.ku6.com" => "ku6",
                "tv.sohu.com" => "sohu",
                "video.sina.com.cn" => "sina",
                "www.56.com" => "five_six",
                "www.iqiyi.com" => "iqiyi",
                "v.ifeng.com" => "ifeng",
                "www.yinyuetai.com" => "yinyuetai",
            );
            isset($methods[$host]) && print_r($this->$methods[$host]($url));
        }
    }
    /**
     * 优酷网
     * // http://www.youku.com
     * @param string $url
     */
    private function youku($url) {
        preg_match(&#39;/id_(.*).html/&#39;, $url, $url);
        if (isset($url[1])) {
            return "http://static.youku.com/v/swf/qplayer.swf?VideoIDS={$url[1]}&=&isAutoPlay=true&embedid";
        }
    }
    /**
     * 土豆网
     * // http://www.tudou.com
     * @param string $url
     */
    private function tudou($url) {
        $data = file_get_contents($url);
        // 匹配真实url地址所需的iid编号
        preg_match(&#39;/iid:(.*)/&#39;, $data, $result);
        if (isset($result[1])) {
            $url = trim($result[1]);
            return "http://www.tudou.com/player/skin/plu.swf?iid={$url}";
        }
    }
    /**
     * 酷6网
     * // http://www.ku6.com
     * @param string $url
     */
    private function ku6($url) {
        // 匹配真实url地址
        preg_match(&#39;/show/(.*).{1}/&#39;, $url, $result);
        if (isset($result[1])) {
            return "http://player.ku6.com/refer/{$result[1]}/v.swf&auto=1";
        }
    }
    /**
     * 搜狐视频
     * // http://tv.sohu.com
     * @param string $url
     */
    private function sohu($url) {
        $data = file_get_contents($url);
        // 匹配真实url地址
        preg_match(&#39;/<meta property="og:video" content="(.*)"/>/&#39;, $data, $result);
        if (isset($result[1])) {
            return $result[1];
        }
    }
    /**
     * 新浪播客
     * // http://video.sina.com.cn
     * @param string $url
     */
    private function sina($url) {
        $data = file_get_contents($url);
        // 匹配真实url地址
        preg_match("/swfOutsideUrl:&#39;(.*)&#39;,/", $data, $result);
        if (isset($result[1])) {
            return $result[1];
        }
    }
    /**
     * 56网
     * // http://www.56.com
     * @param string $url
     */
    private function five_six($url) {
        // 取出视频所需key
        preg_match(&#39;/(v_.*).html/&#39;, $url, $result);
        if (isset($result[1])) {
            return "http://player.56.com/{$result[1]}.swf";
        }
    }
    /**
     * 奇艺网
     * // http://www.qiyi.com
     * @param string $url
     */
    private function iqiyi($url) {
        $data = file_get_contents($url);
        // 取出视频所需key
        preg_match(&#39;/("videoId":"(.*)")|(data-player-videoid="(.*)")/U&#39;, $data, $result);
        if (isset($result[4])) {
            return "http://www.iqiyi.com/player/20130315154043/SharePlayer.swf?vid={$result[4]}";
        }
    }
    /**
     * 凤凰网
     * // http://www.ifeng.com
     * @param string $url
     */
    private function ifeng($url) {
        // 取出视频所需key
        preg_match(&#39;/d+/(.*)./&#39;, $url, $result);
        if (isset($result[1])) {
            return "http://v.ifeng.com/include/exterior.swf?guid={$result[1]}&fromweb=sinaweibo&AutoPlay=true";
        }
    }
}
?>

PHP API调用实例

/tools/web_video.php?url=视频页面地址

eg:/web_video.php?url=http://www.iqiyi.com/dianying/20130217/e72ffd87c2e9c5af.html


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn