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的面向对象编程
Oct 09 PHP
PHP4中实现动态代理
Oct 09 PHP
《PHP边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 PHP
php并发对MYSQL造成压力的解决方法
Feb 21 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
php验证码生成代码
Nov 11 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
Django 中 cookie的使用
Aug 17 PHP
php异常处理捕获错误整理
Sep 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
9个实用的PHP代码片段分享
2015/01/22 PHP
PHP实现的mysql读写分离操作示例
2018/05/22 PHP
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
利用node.js实现自动生成前端项目组件的方法详解
2017/07/12 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
如何实现一个简易版的vuex持久化工具
2019/09/11 Javascript
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
Python自定义一个异常类的方法
2019/06/27 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
联想英国官网:Lenovo英国
2019/07/17 全球购物
警察思想汇报
2014/01/04 职场文书
幼儿园教学管理制度
2014/02/04 职场文书
跳槽求职信范文
2014/05/26 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
交通事故协议书范文
2014/10/23 职场文书
小学少先队活动总结
2015/05/08 职场文书
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技