我有这样的m3u8文件
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:561
#EXTINF:10.799611,
_c10_262_c10_148_c10_561.ts
#EXTINF:9.599644,
_c10_262_c10_148_c10_562.ts
#EXTINF:9.599667,
_c10_262_c10_148_c10_563.ts
#EXTINF:10.799611,
_c10_262_c10_148_c10_564.ts
#EXTINF:9.599667,
_c10_262_c10_148_c10_565.ts
#EXTINF:9.599644,
_c10_262_c10_148_c10_566.ts我想读取它以将客户端重定向到它
我的代码是
$dir = "/var/www/media/";
$playfile = 'curl --silent "file://'.$dir.'file.m3u8" 2>/dev/null';
header('Content-Type: video/mp2t');
mysql_close($sqlconnection);
@system($playfile, $output);
exit();当我连接到链接时,我重定向到正确的文件,但当重定向到包含它的m3u8文件时,出现错误
在重定向客户端之前,我需要重新生成文件
我使用curl来执行它与客户端用户名,以了解他是否在线或没有…我需要向web根目录隐藏我的m3u8文件,并将其保存在本地路径中
发布于 2015-07-09 14:59:08
为什么要使用curl,并通过shell来引导?在这种情况下,一个简单的ceho file_get_contents()应该足够了。
此外,如果您需要在每次加载时重新生成文件(这是另一个“为什么?”),那么您应该已经将文件的全部内容放在一个变量中。只需print将变量传递给客户端,而不是通过文件系统和外壳命令进行整个往返。
对于动态生成的文件,如下所示:
$m3u = generate_playlist ($mediaFolder);
header ('Content-Type: video/mp2t');
echo $m3u;
die();对于静态文件:
header ('Content-Type: video/mp2t');
echo file_get_contents ($file);
die();请注意,如果这是代码(分支)的最后一行,则不需要调用die()。PHP自然会在最后一行代码中使用die。
附言:对于将来的帖子来说,这是一个很好的技巧。当你请求帮助如何做某事时,请提供你为什么想要做的理由。大多数时候有一个更好的方法,但只有在我们知道你想做什么以及为什么要做的情况下,我们才能提供它。;)
https://stackoverflow.com/questions/31309835
复制相似问题