PHP获取各大视频网站页面中的Flash播放地址
先看一个简单的,我用PHP实现了这个功能,我觉得用PHP来做这项工作简直是一种享受!使用其提供的强大的HTML页面处理函数和正则表达式,短短的几行代码就能搞定这个功能。
贴一下关键代码:
<?php //获取优酷页面中的flash地址 function get_flash_url( $url ) { $lines = file( $url ); foreach ( $lines as $linenum => $line ) { preg_match_all( '|<input type="text" id="link2" value="([^<>]+)" />|' , $line , $result ); $swfurl = $result [1][0]; if (! empty empty ( $swfurl )) return $swfurl ; } } ?> <?php $url = $_SERVER [ "QUERY_STRING" ]; $flashurl = get_flash_url( $url ); echo ( $flashurl ); ?>比如这个文件我们存为 test.php,那么我们只需要运行test.php?优酷视频的url 就可以解析出FLASH地址了.
思路很简单,就是先看看优酷视频网页的HTML代码里关键FLASH地址那段的特征,随便找个网页,比如我们可以看到这一段:
<div class = "item" ><span class = "label" >flash地址: </span> <input type= "text" id= "link2" value= "http://player.youku.com/player.php/sid/XMTU1MzcxMzAw/v.swf" />然后使用正则表达式来将其中的地址段匹配掉,就OK了,上面只是单个的,后来找到一个升级的方法,可以自动获取各大视频网站flash视频播放地址,目前已支持新浪播客、优酷网、土豆网、酷6网、搜狐视频、56网、奇艺网、凤凰网等视频网站的视频播放页链接。
代码如下:
<?php if (! empty empty ( $_GET [ 'url' ])) { $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 [ 'url' ]; if ( $url ) { $parse = parse_url ( $url ); isset( $parse [ 'host' ]) && $host = $parse [ 'host' ]; $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( '/id_(.*).html/' , $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( '/iid:(.*)/' , $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( '/show/(.*).{1}/' , $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( '/<meta property="og:video" content="(.*)"/>/' , $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:'(.*)',/" , $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( '/(v_.*).html/' , $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( '/("videoId":"(.*)")|(data-player-videoid="(.*)")/U' , $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( '/d+/(.*)./' , $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查看更多关于PHP获取各大视频网站页面中的Flash播放地址 - ph的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did29941