PHP网站升级https后如何引用http直播源hls?
网站升级https后 发现使用http的hls直播源均无法正常播放了
网站引用了多个http hls直播源 如何才能让恢复使用呢 ?这里采用的是服务端转发 代码如下
<?php
error_reporting(0);
header("ACCESS-CONTROL-ALLOW-ORIGIN:*");function get_url_contents($url)
{if (function_exists('curl_init')) {$ch = curl_init();curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);curl_setopt($ch, CURLOPT_URL, $url);$result = curl_exec($ch);curl_close($ch);return $result;} else {if (ini_get("allow_url_fopen") == "1") {return file_get_contents($url);}}
}function resolve_hls($url)
{$url = trim(urldecode($url));$old = pathinfo($url);$m3u8 = get_url_contents($url);if (!empty($old['dirname'])) {if (strpos($m3u8,'EXT-X-STREAM-INF')!== false) {try {preg_match_all('/([\S]+)(\.m3u8)+(.*)?/i', $m3u8, $match);$new = $match[0][0];if (stripos($new, 'http:') !== false || stripos($new, 'https:') !== false || substr($new, 0, 2) == '//') {$newUrl = $new;} else {$newUrl = $old['dirname'] . '/' . $new;}resolve_hls($newUrl);}catch (\Exception $exception) {echo $exception->getMessage();}} else {try {preg_match_all('/([\S]+)(\.ts)+(.*)?/i', $m3u8, $match_ts);if(empty($match_ts[0][0])){preg_match_all('/([\S]+)(\.aac)+(.*)?/i', $m3u8, $match_ts);}$new = $match_ts[0][0];if (stripos($new, 'http:') !== false || stripos($new, 'https:') !== false || substr($new, 0, 2) == '//') {echo $m3u8;} else {$newUrl = $old['dirname'] . '/';echo preg_replace_callback('/([\S]+)(\.ts)+(.*)?/i', function ($mtches) use ($newUrl){return 'https://qianxun.damicms.com/transhls.php?action=' . urlencode($newUrl . $mtches[0]);}, $m3u8);}} catch (\Exception $exception) {echo $exception->getMessage();}}}
}
if (!empty($_GET['url'])) {$url = urldecode($_GET['url']);resolve_hls($url);
} else if(!empty($_GET['action'])){$url2 = trim(urldecode($_GET['action']));if(stripos($url2, 'https:') !== false){header("Location:{$url2}");}else{$m3u8 = get_url_contents($url2);echo $m3u8;}
}?>
PHP网站升级https后如何引用http直播源hls?相关推荐
- 网站升级Https后之前在http下的WebSocket出现链接失败的问题
网站升级Https后之前在http下的WebSocket出现链接失败的问题 一.前端代码 var socket = new WebSocket('ws://192.168.2.110') 注意点: 1 ...
- 网站升级HTTPS后WebSocket不能连接的问题
前端部分 如果网站使用HTTPS,WebSocket必须要使用wss协议: 使用wss协议的连接请求必须只能写域名,而非IP+端口: 建议在URL域名后面为websocket定义一个路径,本例中是/w ...
- python正则表达式--分组、后向引用、前(后)向断言
无名.有名分组 (1)正则表达式-无名分组 从正则表 达式的左边开始看,看到的第一个左括号"("表示表示第一个分组,第二个表示第二个分组, 依次类推. 需要注意的是,有一个隐含的全 ...
- 网站开启https后很慢_网站HTTPS后初次加载奇慢,打开后站内浏览速度又正常
网站HTTPS后打开奇慢,首页加载后后站内加载速度又正常. 开HTTPS后,首页初次打开特别慢,换了设备情况也是一样. 把HTTPS关了后,首页打开恢复正常, 难道是免费的HTTPS的锅? 如果是这样 ...
- vue3 项目修改打包后的引用路径,调整图片压缩成base64的门槛
vue3 项目修改打包后的引用路径,调整图片压缩成base64的门槛 前言 解决 完事 前言 最近的项目中需要在程序中显示一个H5页面,所以按照官方VUE CLI的教程创建了一个项目开始整.整到最后打 ...
- nginx+tomcat,http强制跳转https后的error_page配置!【原创】
最近在生产环境搭建时发现http强制301跳转到https后error_page的设置怎么都不生效,后来检查出了原因,根据网上的搜索资料在加上自己的逻辑分析,最终实现了这个功能.如有更简单的方法请高手 ...
- nginx 代理https后,应用redirect https变成http --转
原文地址:http://blog.sina.com.cn/s/blog_56d8ea900101hlhv.html 情况说明 nginx配置https,tomcat正常http接受nginx转发. n ...
- php正则引用不能计算,php正则表达式 后向引用~
php正则表达式 后向引用- 使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理.默认情况下,每个分组会自动拥有一个组号,规则是:从左 ...
- php 正则表达式 后向引用,php正则表达式 后向引用~ | 学步园
php正则表达式 后向引用- 使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理.默认情况下,每个分组会自动拥有一个组号,规则是:从左 ...
最新文章
- SAP RETAIL 如何确定自动补货触发的单据类型 III
- Json字符串解析原理、超大json对象的解析
- UA MATH574M 统计学习V Variable Selection简介
- Java多线程:线程间通信之Lock
- 阿里云2011.9.17招聘会笔试题
- 一步一步学Silverlight 2系列(6):键盘事件处理
- python集合运算_Python 集合set()添加删除、交集、并集、集合操作详解
- Java 接口基础详解,java开发面试笔试题
- 通过 Android SDK Manager 安装面向 Android* 模拟器插件的英特尔® 凌动™ x86 系统映像...
- day4(继承、修饰符、方法的重写、super关键词、继承中的构造方法、object类、对象转型)...
- Gamesalad借QQ游戏无线平台进军中国
- 语音处理基础:预加重、分帧、帧移、加窗、傅里叶变换
- 什么是炎症(inflammation)?抗生素?//2021-2-12
- Uni-App实现人脸识别功能
- 培训linux系统下载,非常好的Linux培训教程集合下载
- 手机软件测试规范(含具体用例)
- java获取微信token_Java微信公众平台开发(六)--微信开发中的token获取
- bt torrent文件
- C# 让程序开机自动运行的方法
- 信号完整性系统学习(一)前言