页面上的PHP / HTML5随机声音播放器加载

时间:2016-11-16 20:25:50

标签: php html5 audio

我正在尝试制作一个php / html5声音播放器: 1.扫描名为“声音”的文件夹中的文件,并仅选择mp3文件 2.在每个页面加载时,播放“声音”文件夹中的随机声音。

到目前为止它工作得很好,除了有时源的路径不是.mp3而是“/ sound /”,有时候“/..”

你有什么建议吗?我有办法只扫描mp3,而不是dirs或其他扩展吗?

非常感谢您的回复..

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php 
$dir = 'sound/';
$scan = scandir($dir);
$size = sizeof($scan);
$random = rand(1, $size);
$randomFile = $scan[$random];
$fileLocation = $dir. $randomFile;
$explode = explode(".", $randomFile);
$extension = $explode[1];
?>
<title>Test</title>

</head>
<body>
    <?php echo $fileLocation; ?>

    <audio autoplay>
        <source src="<?php echo $fileLocation; ?>" type="audio/<?php echo $extension; ?>"></source>
    </audio>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

扫描目录时,PHP会扫描...。在扫描linux中的目录时,您必须跳过扫描的...个文件。试试这段代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php 
$dir = 'sound/';
$scan = scandir($dir);
$size = sizeof($scan);
regen:
$random = rand(1, $size);
$randomFile = $scan[$random];
if( $randomFile == 'sound/..' || $randomFile == 'sound/.' ) 
    goto regen;
$fileLocation = $dir. $randomFile;
$explode = explode(".", $randomFile);
$extension = end($explode);
?>
<title>Test</title>

</head>
<body>
    <?php echo $fileLocation; ?>

    <audio autoplay>
        <source src="<?php echo $fileLocation; ?>" type="audio/<?php echo $extension; ?>"></source>
    </audio>
</body>
</html>

或仅允许mp3个扩展名,如下所示:

$dir = 'sound/';
$scan = scandir($dir);
$size = sizeof($scan);
regen:
$random = rand(1, $size);
$randomFile = $scan[$random];
$fileLocation = $dir. $randomFile;
$explode = explode(".", $randomFile);
$extension = end($explode);

if( $extension != 'mp3' ) goto regen;

答案 1 :(得分:1)

scandir根据文档扫描文件和目录。

$dir = 'sound/';
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
      $x =  pathinfo($filename);
      if( $x['extension'] == 'mp3' )
         $files[] = $filename;

}

然后你可以从你的文件数组中选择。