случайный выбор файла

  • Автор темы Автор темы usascha
  • Дата начала Дата начала

usascha

Новичок
случайный выбор файла

Нашел следующий код на сайте:
PHP:
handle = opendir('../files');
$i=0;
while (false !== ($file = readdir($handle))) { 
	if ($file != "." && $file != "..") {
		$i++;
		echo $file.'<br>'; 
	}
}
closedir($handle); 
echo 'В папке '.$i.' файлов<br>';
$d=rand(0,$i);
echo "<br>".$d;

Как сделать чтобы случайно выводилось не число, а имя файла?
 
вместо echo $file.'<br>'; записывать имена файлов в массив.
 
Судя по тому, что у меня заработало, я понял правильно подсказку:
PHP:
$handle = opendir('../cross_files');
$i=0;
while (false !== ($file = readdir($handle))) { 
	if ($file != "." && $file != "..") {
//		echo $file.'<br>';
		$files[$i]=$file;
		$i++;
	}
}
closedir($handle); 
echo 'В каталоге '.$i.' файлов<br>';
var_dump($files);
$d=rand(0,$i-1);
echo "<br>".$files[$d]."<br>";

Большое спасибо.

НО есть маленький вопрос: количество элементов в массиве - 4, а последний элемент имеет номер 3. Если функция rand выбирает 4, то это не соответствует никакому элементу массива и выдает ошибку. Так и должно быть?
 
А как она "выбирает 4" если в коде '$i-1'?
 
usascha

Проверяй файл на существование и на вожможность чтения
перед тем как его использовать.
 
baev, это я уже последний вариант кода запостил, а без минуса как раз так и получается.


admin,
Проверка файла на существование это не одно и тоже, что отфильтровка "." и ".."? Ведь все остальное что в папке д.б. файлом (поддпиректорий нет)?!
 
Сверху