我想通过php扫描目录https://equestria.space/videosmlp/fim/
(扫描.mp4文件,因为只有它们)。然后在扫描和打印之后我在index.php
<?php
$dir = "../videosmlp/fim";
$scans = scandir($dir);
$episodes = array();
foreach($scans as $k=>$v){
array_push($episodes,['id'=>$k,'filename'=>$v]);
}
?>
<?php foreach ($episodes as $episode){?>
<video id="<?php echo $episode['filename']; ?>" width="960" height="540" data-overscale="false">
<source type="video/mp4" src="<?php echo $episode['filename']; ?>.mp4" />
</video>
<?php } ?>
我在https://equestria.space/moviesmlp/fim中有视频 我想在https://equestria.space/series
中输出视频获取错误
Warning: scandir(../videosmlp/fim,../videosmlp/fim): The system cannot find the path specified. (code: 3) in S:\equestriaspace\series\index.php on line 1011
Warning: scandir(../videosmlp/fim): failed to open dir: No such file or directory in S:\equestriaspace\series\index.php on line 1011
Warning: scandir(): (errno 2): No such file or directory in S:\equestriaspace\series\index.php on line 1011
Warning: Invalid argument supplied for foreach() in S:\equestriaspace\series\index.php on line 1014
答案 0 :(得分:0)
您可以使用简单的desired
获取foreach()
数组,如下所示 -
$dir = "/path/to/directory";
$scans = scandir($dir);
$episodes = array();
foreach($scans as $k=>$v){
if (preg_match('/.mp4$/', $v))
array_push($episodes,['id'=>$k,'filename'=>$v]);
}
末尾的{p> $episodes
将包含数组。 $dir
必须是您的目录的absolute
或relative
路径。
然后循环播放剧集数组以获得个别剧集。
<?php foreach ($episodes as $episode){?>
<?php echo $episode['filename']; ?>
<?php } ?>
答案 1 :(得分:0)
搜索ftp以获得您想要的结果! scandir
需要path
而不是url
有一次,你可以像这样得到你想要的东西:
<?php
$path_of_films = 'path/to/filmdirecoty';
$list_episodes = scandir($path_of_films);
$i = 1;
foreach($list_episodes as $name)
{
if($name != '.' OR $name != '..')
{
$episodes[] = [
'id' => $i,
'filename'=> $name
]
$i++;
}
}
答案 2 :(得分:0)
URL不是目录,您不能简单地扫描它包含的文件。允许您执行的所有HTTP都要求服务器根据特定字符串为您提供一些内容。
服务器响应您提供的字符串的最简单方法是将它们映射到磁盘上的目录和文件,但它可能会查找某个数据库,或者根据某些神秘的数学公式生成内容。它可以为一个以#结尾的URL执行此操作,就像一个看起来像文件名的结尾一样容易。
因此,唯一能够知道“文件”(末端带有文件名的位)的内容是“in”(可以形成如下)的唯一方法是“目录”(以/结尾的URL)是服务器已经安排了一些告诉你的方式,比如索引页面。