这位于我网站根目录index.php
的正文中,localhost/sound/
包含一堆随机命名的mp3
文件。
<?php
$files = glob("/sound/*.mp3");
$random = array_rand($files)
?>
<embed src="<?php echo $random ?>"
width="140" height="40" autostart="true" loop="TRUE">
</embed>
当我在浏览器中查看页面的来源时显示
<embed src=""
width="140" height="40" autostart="true" loop="TRUE">
</embed>
答案 0 :(得分:2)
确保glob
实际上正在返回匹配项:
$files = glob("/sound/*.mp3");
if (count($files) < 1)
die('No files found');
$random = $files[array_rand($files)];
...
你可以做同样的事情,但提供一个后备默认值:
$files = glob("/sound/*.mp3");
$random = count($files) > 1 ? $files[array_rand($files)] : 'path/to/default.mp3';
...
答案 1 :(得分:2)
首先,确保您确实获得了一些文件名。请注意,glob()
需要文件系统上的路径。路径/sound/*.mp3
应该类似于sound/*.mp3
(即相对于您的PHP脚本)或/var/www/html/sound/*.mp3
(存储Web文件的绝对路径)。
您应该检查代码以验证您是否收到了文件。例如:
if ($files === FALSE || count($files) == 0)
{
die('No MP3s!');
}
其次,array_rand()
返回一个随机数组键。您必须在数组中查找该键以检索相应的值:
<embed src="<?php echo $files[$random] ?>"