为了账号安全,请及时绑定邮箱和手机立即绑定

从文件夹中随机播放视频文件,递归地向下查看所有目录结构树

从文件夹中随机播放视频文件,递归地向下查看所有目录结构树

PHP
青春有我 2023-05-26 10:02:08
一些 JavaScript、JQuery 或 PHP 会递归地查看文件夹,向下查看所有目录结构树,找到新的视频文件并将其加载到 html5 视频标签源中,以便每次重新加载页面时自动播放。一个加号,当完成播放时,随机无缝地跳转到另一个视频文件。这将适用于一个选定的文件夹,但不适用于所有目录结构树<?php$myVideoDir = '.';$extension = 'mp4';$videoFile = false;$pseudoDir = scandir($myVideoDir);$myitems = array();$mycounter = 0;foreach($pseudoDir as $item) {    if ( $item != '..' && $item != '.' && !is_dir($item) ) {        $ext = preg_replace('#^.*\.([a-zA-Z0-9]+)$#', '$1', $item);        if ( $ext == $extension )            $videoFile = $item;            if ( $videoFile <> "" ) {                $myitems[] = $videoFile;                $mycounter = $mycounter + 1;            }                   }}$myrandom = rand(0,$mycounter-1);if ( !!$videoFile ) {    echo '<video id="dep" class="center" width="400" autoplay controls>                    <source src="'.$myVideoDir.'/'.$myitems[$myrandom].'" type="video/mp4">         </video>    ';}?>
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

我建议使用以下代码。


<?php

$myVideoDir = '.';

$extension = 'mp4';

$videoFile = false;

$pseudoDir = scandir($myVideoDir);

$myitems = array();

foreach($pseudoDir as $item) {

  if ( $item != '..' && $item != '.' && !is_dir($item) ) {

    $ext = preg_replace('#^.*\.([a-zA-Z0-9]+)$#', '$1', $item);

    if ( $ext == $extension ) {

      $videoFile = $item;

      if ( $videoFile <> "" ) {

        array_push($myitems, $videoFile);

      }               

    }

  }

}

$myrandom = rand(0,count($myitems)-1);

if ( !!$videoFile ) {

  echo '<video id="dep" class="center" width="400" autoplay controls><source src="'.$myVideoDir.'/'.$myitems[$myrandom].'" type="video/mp4"></video>';

}

?>

更新


考虑做一个函数。


<?php


function getFileList($dirPath, $ext){

  $list = scandir($dirPath);

  $fileList = array();

  foreach($list as $item) {

    if ($item != '..' && $item != '.' && !is_dir($item)) {

      $info = pathinfo($item);

      $videoFile = $item;

      if ($info['extension'] == $ext) {

        array_push($fileList, $item);

      }               

    }

  }

  return $fileList;

}


function pickRandVid($l){

  $r = rand(0, count($l) - 1);

  return $l[$r];

}


$myVideoDir = ".";

$dirList = scandir($myVideoDir);

$videoList = array()

foreach($dirList as $d){

  if(is_dir($d)){

    array_merge($videoList, getFileList($d, "mp4"));

  }

}


echo "<video id='dep' class='center' width='400' autoplay controls>\r\n";

echo "\t<source src='$myVideoDir/" . pickRandVid($videoList) . "' type='video/mp4' />\r\n";

echo "</video>\r\n";


?>


查看完整回答
反对 回复 2023-05-26
  • 1 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信