PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法


Posted in PHP onAugust 04, 2017

本文实例讲述了PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法。分享给大家供大家参考,具体如下:

很多用户不知道如何复制flash地址,只能在程序中帮他们替换了:

<?php
/**
 * 支持优酷、土豆、腾讯视频html到swf转换
 */
function convert_html_to_swf($url = '')
{
  if(!is_string($url) || empty($url)) return ;
  if(strpos($url, 'swf')) return $url;
  preg_match_all('/http:\/\/(.*?)?\.(.*?)?\.com\/(.*)/', $url, $types);
  $type = $types[2][0];
  $domain = $types[1][0];
  switch ($type) {
    case 'youku' :
      preg_match_all('/http:\/\/v\.youku\.com\/v_show\/id_(.*)?\.html/', $url, $url_array);
      $swf = 'http://player.youku.com/player.php/sid/' . str_replace('/', '', $url_array[1][0]) . '/v.swf';
      break;
    case 'tudou' :
      $method = substr($types[3][0], 0, 1);
      $method = $method == 'p' ? 'v' : $method;
      preg_match_all('/http:\/\/www.tudou\.com\/(.*)?\/(.*)?/', $url, $url_array);
      $str_arr = explode('/', $url_array[1][0]);
      $count = count($str_arr);
      if ($count == 1) {
        $id = explode('.', $url_array[2][0]);
        $id = $id[0];
      } else if ($count == 2) {
        $id = $str_arr[1];
      } else if ($count == 3) {
        $id = $str_arr[2];
      }
      $swf = 'http://www.tudou.com/' . $method . '/' . $id . '/v.swf';
      break;
    case 'qq' :
      $url_array = parse_url($url);
      $swf = "http://static.video.qq.com/TPout.swf?{$url_array['query']}&auto=0";
      break;
    default :
      $swf = $url;
      break;
  }
  return $swf;
}
/**
 * 优酷视频转换测试
 * html地址 http://v.youku.com/v_show/id_XNzU4Mzg2NDA4.html?f=22720170&ev=2&from=y1.1-2.10001-0.1-2
 * swf地址 http://player.youku.com/player.php/sid/XNzU4Mzg2NDA4/v.swf
 */
echo convert_html_to_swf("http://v.youku.com/v_show/id_XNzU4Mzg2NDA4.html?f=22720170&ev=2&from=y1.1-2.10001-0.1-2");
echo "<hr>";
/**
 * 腾讯视频转换测试
 *
 * html地址 http://v.qq.com/cover/w/w5lb270k15j7ita.html?vid=v0015mnd5x6
 * swf地址 http://static.video.qq.com/TPout.swf?vid=v0015mnd5x6&auto=0
 */
echo convert_html_to_swf("http://v.qq.com/cover/w/w5lb270k15j7ita.html?vid=v0015mnd5x6");
echo "<hr>";
/**
 * 土豆视频转换测试
 *
 * html地址 http://www.tudou.com/albumplay/hqtp6W5XLN8/Kscjyz4J-RE.html
 * swf地址 http://www.tudou.com/a/hqtp6W5XLN8/&iid=132223533&resourceId=0_04_0_99/v.swf
 */
echo convert_html_to_swf("http://www.tudou.com/albumplay/hqtp6W5XLN8/Kscjyz4J-RE.html");
echo "<hr>";
PHP 相关文章推荐
php打造属于自己的MVC框架
Mar 07 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
Jun 21 PHP
54个提高PHP程序运行效率的方法
Jul 19 PHP
详解PHP实现执行定时任务
Dec 21 PHP
PHP获取网站中各文章的第一张图片的代码示例
May 20 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
stripos函数知识点实例分享
Feb 11 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 PHP
laravel Model 执行事务的实现
Oct 10 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
Aug 04 #PHP
php7安装yar扩展的方法详解
Aug 03 #PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
Aug 03 #PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 #PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
Aug 03 #PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 #PHP
使用PHP json_decode可能遇到的坑与解决方法
Aug 03 #PHP
You might like
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
javascript 的Document属性和方法集合
2010/01/25 Javascript
基于jQuery的左右滚动实现代码
2010/12/03 Javascript
jQuery UI Dialog控件中的表单无法正常提交的解决方法
2010/12/19 Javascript
动态加载js和css(外部文件)
2013/04/17 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
Swiper实现轮播图效果
2017/07/03 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
Javascript读写cookie的实例源码
2019/03/16 Javascript
微信小程序实现canvas分享朋友圈海报
2020/06/21 Javascript
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
python循环监控远程端口的方法
2015/03/14 Python
Python正确重载运算符的方法示例详解
2017/08/27 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
Python get获取页面cookie代码实例
2018/09/12 Python
python运用sklearn实现KNN分类算法
2019/10/16 Python
django使用JWT保存用户登录信息
2020/04/22 Python
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
数据库测试通常都包括哪些方面
2015/11/30 面试题
美容院考勤制度
2014/01/30 职场文书
内勤岗位职责
2015/02/10 职场文书
2015年工会工作总结
2015/03/30 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书