Пустой array_rand () при поиске случайного mp3 из каталога - PullRequest
1 голос
/ 12 мая 2011

Это тело моего 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>

Ответы [ 2 ]

2 голосов
/ 12 мая 2011

Во-первых, убедитесь, что вы действительно получаете некоторые имена файлов обратно.Обратите внимание, что glob() ожидает путь в вашей файловой системе.Путь /sound/*.mp3, вероятно, должен быть примерно таким: sound/*.mp3 (т.е. относительно вашего PHP-скрипта) или /var/www/html/sound/*.mp3 (абсолютный путь к месту хранения ваших веб-файлов).

Вы должны поставить отметку вваш код, чтобы убедиться, что вы получаете файлы обратно.Например:

if ($files === FALSE || count($files) == 0)
{
    die('No MP3s!');
}

Во-вторых, array_rand() возвращает случайный ключ массива.Вам нужно будет найти этот ключ в массиве, чтобы получить соответствующее значение:

<embed src="<?php echo $files[$random] ?>" 
2 голосов
/ 12 мая 2011

Убедитесь, что 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';

...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...