php在curl文件之前更新m3u8文件

php在curl文件之前更新m3u8文件,php,curl,m3u8,Php,Curl,M3u8,我有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

我有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文件,并将其保存在本地路径中

为什么要使用curl,并通过shell启动?在这种情况下,一个简单的
ceho文件\u get\u contents()
就足够了

此外,如果您需要在每次加载时重新生成文件(这是另一个“为什么?”),那么您应该已经在一个变量中包含了文件的全部内容。只需将所述变量打印到客户端,而不是通过文件系统和shell命令执行整个往返过程

对于动态生成的文件,其外观如下所示:

$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自然会在最后一行代码中消失


附言:对于以后的帖子来说,这是一个很好的提示。无论何时,当你在如何做某事上寻求帮助时,请提供你为什么要这样做的理由。大多数情况下,有一种更好的方法,但只有当我们知道您想做什么,以及为什么要做时,我们才能提供这种方法

谢谢你,我使用curl来执行它与客户端用户名,以知道他是否在线或没有。。。我需要从web根目录中隐藏我的m3u8文件,并将其保存在本地路径中。我不确定为什么需要使用cURL来确定用户是否在线,这应该已经由PHP脚本的登录例程来处理了。我的两个示例都允许您将m3u8文件放在web根目录之外,事实上,在我的第一个示例中,任何地方都没有实际保存的文件。不客气,我希望我的回答对您有用。“我使用curl来执行客户端用户名”-您的示例代码中没有提到用户名,我无法想象使用curl访问本地文件与使用普通文件访问函数有何不同。