扫描目录并制作数组PHP

时间:2018-01-20 13:39:30

标签: php arrays

我想通过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

3 个答案:

答案 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必须是您的目录的absoluterelative路径。

然后循环播放剧集数组以获得个别剧集。

<?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)是服务器已经安排了一些告诉你的方式,比如索引页面。