我有以下代码可以在视频之间随机旋转以显示在目录中。我试图使它顺序而不是随机(1.mp4,然后2.mp4等),但当我替换asort()的rand()函数时,我得到一个错误。有任何想法吗? 感谢。
$video_count = 0;
if(isset($_SESSION['video_count'])){
$video_count = $_SESSION['video_count'];
}
$video_count++;
$_SESSION['video_count'] = $video_count;
$folder = './videos';
$extList = array();
$extList['mp4'] = 'movie/mp4';
$img = "";
$fileList = array();
$handle = opendir($folder);
while ( false !== ( $file = readdir($handle) ) ) {
$file_info = pathinfo($file);
if (isset( $extList[ strtolower( $file_info['extension'] ) ] )){
$fileList[] = $file;
}
}
closedir($handle);
$rand_id = (int)rand(0,count($fileList)-1);
$video_id =$fileList[$rand_id];
并表示:
<video width="1000" height="565" autoplay id="video" loop="true">
<source src="videos/<?= $video_id ?>" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
<source src="movie.webm" type="video/webm">
<object data="videos/<?= $video_id ?>" width="624" height="352">
<embed src="movie.swf" width="624" height="352">
</object>
</video>
答案 0 :(得分:1)
您不需要使用asort,这对于关联数组来说是特殊的。使用排序。 然后你可以使用yor会话变量$ video_count每次选择一个项目。
...
closedir($handle);
sort($fileList);
$video_id =$fileList[$video_count];
答案 1 :(得分:0)
怎么样:
$files = glob($folder.'/*.mp4');
shuffle($files);
// if you need just filename
$video_id = pathinfo(reset($files), PATHINFO_FILENAME);
// or just file with ext
$video_id = basename(reset($files));