<?php /** * 处理 视频链接信息 * 支持ku6 youku tudou sohu sina */ $url=get_input('video'); $pattern='/(http:\/\/)?([\w-]+)\.([\w-]+)(\.[\w-]+)*(\/)?[^s]*/'; if(!preg_match($pattern, $url)){ echo 'error1'; exit; } $swf=getvideo($url); if(empty($swf)){ echo 'error2'; exit; } echo $swf; exit; /** * 通过视频网站url获取swf地址 * @param string $content * @return string */ function getvideo($url){ $host=''; $urls = parse_url($url); $host = strtolower(trim($urls["host"])); $vhconfs = array( 'youku.com' => array('p'=>'/\/id_([\w\d\=]+)\.html/','c'=>'utf-8','tp'=>'/\<title\>(.+?)\s*[\-\_].*?\<\/title\>/i','ip'=>'~(?:(?:\_href\s*\=\s*[\'\']iku\:\/\/.+?)|(?:\&pic\s*\=\s*)|(?:\&screenshot\s*\=\s*))(http\:\/\/[\w\d]+\.ykimg\.com\/[^\|\'\'\s]+)~i', 'ppp'=>1), 'sina.com.cn' => array('p'=>'/\/(\d+)\-(\d+)\.html/','c'=>'utf-8','tp'=>'/\<title\>(.+?)\s*[\-\_].*?\<\/title\>/','ip'=>'~pic\s*[\:\=]\s*[\'\'](http\:\/\/[^\']+?\.(?:jpg|jpeg|gif|png|bmp))[\'\']~i', 'ppp'=>1), 'tudou.com' => array('p'=>'/view\/([\w\d\-\_]+)\/' . '*$/','c'=>'gbk','tp'=>'/\<title\>(.+?)(?:[\-\_].*?)?\<\/title\>/','ip'=>'/(?:bigItemUrl|pic)\s*[\=\:]\s*[\'\']([^\'\']+?)[\'\']/i', 'ppp'=>1, 'gzip'=>1,), 'ku6.com' => array('p'=>'/\/([\w\-\_\.]+)\.html/','c'=>'gbk','tp'=>'/\<title\>(.+?)\s*[\-\_].*?\<\/title\>/i','ip'=>'~(?:(?:\<span class=\'s_pic\'\>)|(?:cover\s*[\:\=]\s*[\'\']))(http\:\/\/[^\'\<]+?\.(?:jpg|jpeg|gif|png|bmp))~i', 'ppp'=>0, ), 'sohu.com' => array('p'=>'/\/([\d]+)\/?$/','c'=>'gbk','tp'=>'/\<title\>(.+?)\s*[\-\_].*?\<\/title\>/i','ip'=>'/(?:(?:[\'\']og\:image[\'\']\s*content)|(?:cover))\s*[\:\=]\s*[\'\']([^\'\']+?)[\'\']/', 'ppp'=>1), //'mofile.com' => array('p'=>'/\/(\w+)\/?$/','c'=>'utf-8','tp'=>'/\<title\>(.+?)\s*[\-\_].*?\<\/title\>/i','ip'=>'/thumbpath=\'(.*?)\';/i',), ); $swf=array( 'youku.com'=>'http://player.youku.com/player.php/sid/FLASHVAR=/v.swf', 'ku6.com'=>'http://player.ku6.com/refer/FLASHVAR/v.swf', //'5show.com'=>'http://www.5show.com/swf/5show_player.swf?flv_id=FLASHVAR', 'sina.com.cn'=>'http://vhead.blog.sina.com.cn/player/outer_player.swf?vid=FLASHVAR', 'sohu.com'=>'http://v.blog.sohu.com/fo/v4/FLASHVAR', 'tv.sohu.com'=>'http://share.vrs.sohu.com/FLASHVAR/v.swf', //'mofile.com'=>'http://tv.mofile.com/cn/xplayer.swf?v=FLASHVAR', 'tudou.com'=>'http://www.tudou.com/v/FLASHVAR', ); foreach($vhconfs as $k=>$v) { if(false!==strpos($host,$k)) { $return = array(); if(preg_match($v["p"],$url,$m) && $m[1]) { $return["id"] = $m[1]; $return["host"] = $k; $return["url"] = $url; } elseif($v["ppp"]) { if("tudou.com" == $k) { if(false!==strpos($url, "play/") && ($html = @dfopen($url))) { if($v["gzip"]) { $html = @gzdecode($html); } $iid = ""; $icode = ""; if(preg_match('~(?:(?:[\?\&\#]iid\=)|(?:\d+i))(\d+)~',$url,$m) && $m[1]) { $iid = $m[1]; } elseif(preg_match('~(?:(?:\,iid\s*=)|(?:\,defaultIid\s*=)|(?:\.href\)\s*\|\|))\s*(\d+)~',$html,$m) && $m[1]) { $iid = $m[1]; } if(preg_match("~".$iid.".*?icode\s*[\:\=]\s*(?:[^\'\"]*?)[\'\"]([\w\d\-\_]+)[\'\"]~s",$html,$m) && $m[1]) { $icode = $m[1]; } if($icode) { $return["id"] = $icode; $return["url"] = $url; } } } elseif("youku.com" == $k) { if(preg_match("~\/v\_playlist\/.+?\.htm~",$url) && ($html = dfopen($url))) { if($v["gzip"]) { $html = gzdecode($html); } $id = ""; if(preg_match("~\_href\s*\=\s*[\'\"]iku\:\/\/.+?http\:\/\/v\.youku\.com\/v\_show\/id\_([\w\d]+)\.htm~i", $html, $m) && $m[1]) { $id = $m[1]; } if($id) { $return["id"] = $id; $return["url"] = $url; } } } elseif("sina.com.cn" == $k) { if(preg_match("/video\.sina\.com\.cn\/.+?\/([\d\-]+)\.html/",$url) && ($html=dfopen($url))) { if($v["gzip"]) { $html = gzdecode($html); } $id = ""; if(preg_match("~vid\s*[\:]\s*[\'\"]([^\'\"]+?)[\'\"]~i", $html, $m) && $m[1]) { $id = $m[1]; } if($id) { $return["id"] = $id; $return["url"] = $url; } } } elseif("sohu.com" == $k) { if(preg_match("~tv\.sohu\.com\/([\w]+\/)+[\w]+\.shtml~i", $url) && ($html=@dfopen($url))){ if($v["gzip"]){ $html = @gzdecode($html); } $id = ""; if(preg_match("~vid\s*[\:\=]\s*[\'\"]([^\'\"]+?)[\'\"]~i", $html, $m) && $m[1]) { $id = $m[1]; } if($id){ $return["id"] = $id; $return["url"] = $url; $return["host"] = "tv.sohu.com"; } } } if($return && !isset($return["host"])) { $return["host"] = $k; } } } } $return['swf']=str_replace('FLASHVAR', $return['id'], $swf[$return['host']]); return $return['swf']; } function gzdecode ($data){ $flags = ord(substr($data, 3, 1)); $headerlen = 10; $extralen = 0; $filenamelen = 0; if ($flags & 4){ $extralen = unpack('v' , substr($data, 10, 2)); $extralen = $extralen[1]; $headerlen += 2 + $extralen; } if ($flags & 8) $headerlen = strpos($data, chr(0), $headerlen) + 1; if ($flags & 16) $headerlen = strpos($data, chr(0), $headerlen) + 1; if ($flags & 2) $headerlen += 2; $unpacked = @gzinflate(substr($data, $headerlen)); if ($unpacked === FALSE) $unpacked = $data; return $unpacked; } function dfopen($url, $limit = 10485760 , $post = '', $cookie = '', $bysocket = false,$timeout=5,$agent="") { if(ini_get('allow_url_fopen') && !$bysocket && !$post) { $fp = @fopen($url, 'r'); $s = $t = ''; if($fp) { while ($t=@fread($fp,2048)) { $s.=$t; } fclose($fp); } if($s) { return $s; } } $return = ''; $agent=$agent?$agent:"Mozilla/5.0 (compatible; Googlebot/2.1; +http:/"."/www.google.com/bot.html)"; $matches = parse_url($url); $host = $matches['host']; $script = $matches['path'].($matches['query'] ? '?'.$matches['query'] : '').($matches['fragment'] ? '#'.$matches['fragment'] : ''); $script = $script ? $script : '/'; $port = !empty($matches['port']) ? $matches['port'] : 80; if($post) { $out = "POST $script HTTP/1.1\r\n"; $out .= "Accept: */"."*\r\n"; $out .= "Referer: $url\r\n"; $out .= "Accept-Language: zh-cn\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; $out .= "Accept-Encoding: none\r\n"; $out .= "User-Agent: $agent\r\n"; $out .= "Host: $host\r\n"; $out .= 'Content-Length: '.strlen($post)."\r\n"; $out .= "Connection: Close\r\n"; $out .= "Cache-Control: no-cache\r\n"; $out .= "Cookie: $cookie\r\n\r\n"; $out .= $post; } else { $out = "GET $script HTTP/1.1\r\n"; $out .= "Accept: */"."*\r\n"; $out .= "Referer: $url\r\n"; $out .= "Accept-Language: zh-cn\r\n"; $out .= "Accept-Encoding: none\r\n"; $out .= "User-Agent: $agent\r\n"; $out .= "Host: $host\r\n"; $out .= "Connection: Close\r\n"; $out .= "Cookie: $cookie\r\n\r\n"; } $fp = jfsockopen($host, $port); if(!$fp) { return false; } else { fwrite($fp, $out); $return = ''; while(!feof($fp) && $limit > -1) { $limit -= 8192; $return .= @fread($fp, 8192); if(!isset($status)) { preg_match('|^HTTP/[^\s]*\s(.*?)\s|',$return, $status); $status=$status[1]; if($status!=200) { return false; } } } fclose($fp); preg_match("/^Location: ([^\r\n]+)/m",$return,$match); if(!empty($match[1]) && $location=$match[1]) { if(strpos($location,":/"."/")===false) { $location=dirname($url).'/'.$location; } $args=func_get_args(); $args[0]=$location; return call_user_func_array("dfopen",$args); } if(false!==($strpos = strpos($return, "\r\n\r\n"))) { $return = substr($return,$strpos); $return = preg_replace('~^\r\n\r\n(?:[\w\d]{1,8}\r\n)?~',"",$return); if("\r\n\r\n"==substr($return,-4)) { $return = preg_replace('~(?:\r\n[\w\d]{1,8})?\r\n\r\n$~',"",$return); } } return $return; } } function jfsockopen($hostname, $port, $errno, $errstr, $timeout) { $fp = false; if(function_exists('fsockopen')) { @$fp = fsockopen($hostname, $port, $errno, $errstr, $timeout); } elseif(function_exists('pfsockopen')) { @$fp = pfsockopen($hostname, $port, $errno, $errstr, $timeout); } return $fp; }
评论
1 楼
string2020
2014-05-10
好,谢谢。
楼主能不能帮忙分析一下
http://class.baihe.com/index.php?play&vid=256
这个网站的视频下载地址
谢谢
楼主能不能帮忙分析一下
http://class.baihe.com/index.php?play&vid=256
这个网站的视频下载地址
谢谢
发表评论
-
根据ip地址获取相关区域信息
2012-09-12 10:48 1156<?php /** * 基于淘宝的ipAPI ... -
同一页面加载多个ztree
2012-07-25 17:11 2117最近项目要在同一个页面加载 多个ztree做不同分类的选 ... -
[转载]50点提高PHP编程效率 引入缓存机制提升性能
2012-07-10 15:23 703转载http://www.cnblogs.com/l ... -
PHP心得转载
2012-07-10 14:17 7731,花括号“{}”可以像“[]”操作数组一样操作字符串, ... -
页面跳转
2012-01-30 14:02 759方法一:使用PHP自带函数Header("Loc ... -
phpcmsv9的二次开发流程
2011-10-22 12:37 1000建立数据库--简历module-控制器-菜单-标签-前台显示 ... -
简易discuzX2的插件开发
2011-10-22 12:26 1059discuzX2的插件开发 1、开始编写一个新插件,请首先打 ...
相关推荐
VB批量获取网上swf格式视频教程URL地址,并可批量移动,将这些地址导入到迅雷或快车中,就可实现批量下载,不错吧。程序获取enet网站的视频教程URL,当然只要符合格式,你可以将地址改为其它目标站,当然程序代码...
3. api.php:这是一个可能包含了与微博视频服务交互的API接口的PHP文件,用于获取视频信息、播放地址等。 4. 使用说明.txt:这是一个文档,详细解释了如何使用这套源码,对于理解和部署源码非常关键。 5. cross...
通过这个名为“swf转换为其他视频格式解决方案”的压缩包,用户可以获取一个完整、高效的SWF转换工具,实现跨平台、无损质量的视频格式转换。这个软件包解决了SWF文件在当前网络环境下的适应性和可播放性问题,让...
标题中的“swf在线录制视频的例子含fla”揭示了这是一个关于使用SWF(ShockWave Flash)文件格式和FLA(Flash源文件)进行在线视频录制的示例项目。SWF是Adobe Flash Player用于播放多媒体内容的文件格式,而FLA则是...
- 为了获取SWF文件的总帧数,可以编写以下事件处理程序: ```pascal procedure TForm1.FormCreate(Sender: TObject); begin Label1.Caption := IntToStr(ShockwaveFlash1.TotalFrames); end; ``` #### 五、...
总的来说,网页视频地址嗅探器是一种实用的工具,它能帮助用户绕过视频网站的限制,获取并下载视频内容。尽管随着技术的发展,嗅探方式也在不断进化,但其核心目标始终是揭示隐藏在网络流量背后的视频资源。
FLV文件地址获取器是一种工具,它的主要功能是解析网页中的视频流信息,从而帮助用户获取到可以直接下载的视频资源链接。在线视频平台通常不会直接提供视频文件的URL,而是通过复杂的脚本和服务器端处理来分发视频...
本文将详细讲解如何在ASP.NET后台上获取FLV视频地址,并实现播放功能。 首先,我们需要了解FLV视频的存储和组织方式。通常,FLV文件会存储在服务器的某个目录下,例如"videos"目录。为了在后台获取FLV地址,我们...
SWF(Small Web Format)是Adobe Flash Player支持的一种文件格式,用于存储包含动画、图形、音频和视频等多媒体内容。AS3是编写SWF文件的主要编程语言,它提供了一种强大的方式来创建交互式应用程序。 要调用一个...
在IT行业中,FLVplayer.swf是一个常见的Flash视频播放器,尤其在过去的年代,它被广泛用于网页中播放FLV格式的视频内容。这个标题"FLVplayer.swf"表明我们要讨论的是一款专为播放FLV文件设计的SWF文件。SWF全称是...
- `洪越源代码.url`:这个文件可能是一个网址链接,指向开发者的网站或源代码页面,用户可以在此获取更多关于软件的技术支持或查看其开源状态。 在实际使用中,用户需要先运行`setup.exe`安装软件,然后参照`说明...
// 获取视频播放地址 String content = doc.html(); int beginLocal = content.indexOf("<script>document.domain"); int endLocal = content.indexOf("</script>"); content = content.substring(beginLocal, end...
1. **SWF格式**:SWF是Adobe Flash的输出格式,它能够展示动画、音频、视频和互动内容。SWF文件通常在网页上播放,通过Adobe Flash Player或者内置在浏览器中的插件来支持。由于其小巧的体积和丰富的表现力,SWF在20...
首先,SWF(ShockWave Flash)是Adobe Flash的一种文件格式,它包含了动画、视频、声音和交互性内容。SWF文件通常是在Flash开发环境中创建,然后嵌入到网页中供用户查看。"SWF分解"或"Flash分解"指的是将一个完整的...
在描述中提到的"swf资源提取软件"是一款高效便捷的工具,用户可以通过它轻松获取SWF文件内部的元素。这对于开发者和设计师来说尤其有用,他们可能需要访问原始素材以便修改或创建新的Flash项目。软件的操作通常直观...
3. 质量调整:允许用户根据网络状况或个人偏好调整视频质量。 4. 全屏模式:提供全屏播放功能,增强观看体验。 5. 交互性:支持用户与SWF内容进行交互,如点击按钮、填写表单等。 6. 安全性:防止恶意的ActionScript...
1. **文件读取**:使用文件操作函数打开SWF文件,并逐字节读取文件头,获取版本和文件长度信息。 2. **解压缩**:如果文件是压缩的,需要先用zlib等库进行解压缩。 3. **数据块解析**:根据文件头信息,解析每个...
最后,`访问我们.url`和`U盘量产网.url`是快捷方式文件,前者可能指向沪江教育的官方网站,方便用户获取更多课程信息或支持,后者则可能是推广或教程链接,与播放器本身的功能关系不大。 总的来说,沪江swf课件...
"TT软件下载说明.txt"可能包含了关于如何下载和安装该工具的详细步骤,而".url"文件是一种快捷方式,可以直接打开浏览器访问相关网站获取更多软件信息。最后,"ftswfresextractor"可能是该工具的执行文件,用户需要...
2. **导入SWF文件**:打开软件后,选择“添加文件”或类似选项,将你需要转换的SWF视频导入到软件中。 3. **设置输出格式**:在软件的设置菜单中,选择目标输出格式,如FLV。可能还需要调整分辨率、编码器、比特率...