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 strstr查找字符串中是否包含某些字符的查找函数
Jun 03 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
基于php常用正则表达式的整理汇总
Jun 08 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
Yii2中cookie用法示例分析
Jul 18 PHP
详解PHP序列化和反序列化原理
Jan 15 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 PHP
php面向对象重点知识分享
Sep 27 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 PHP
PHP copy函数使用案例代码解析
Sep 01 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
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
php eval函数一句话木马代码
2015/05/21 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
Javascript实例教程(19) 使用HoTMetal(2)
2006/12/23 Javascript
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
Firefox和IE浏览器兼容JS脚本写法小结
2008/07/07 Javascript
javascript 写类方式之八
2009/07/05 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
2016/12/25 Javascript
JavaScript 中的 this 简单规则
2017/09/19 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
vue点击标签切换选中及互相排斥操作
2020/07/17 Javascript
[46:58]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第一场 12.17
2020/12/19 DOTA
Python深入学习之对象的属性
2014/08/31 Python
Python脚本获取操作系统版本信息
2016/12/17 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
绝对经典成功的大学生推荐信
2013/11/08 职场文书
酒店出纳岗位职责
2013/12/29 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
关于的python五子棋的算法
2022/05/02 Python
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技