|
|
|
| Есть папка с картинками разных форматов (jpg, gif, png, ...). Подскажите, как достать случайную картинку из папки? | |
|
|
|
|
|
|
|
|
для: cheops
(13.06.2011 в 13:35)
| | Попробовал так как в той теме, но ничего не получилось
$imgdir="up/";
$ext="jpg";
$cfile=opendir("$imgdir");
while(($e=readdir($cfile))!==false)
{
if(is_file($e)) $filename[] = $e;
}
$ranfile = mt_rand(0, count($filename) - 1);
echo '<img src="'.$imgdir.$filename[$ranfile].'.'.$ext.'">';
echo count($filename); // почему-то выводит 0 | |
|
|
|
|
|
|
|
для: (Sandr)
(13.06.2011 в 19:55)
| | В папке 3 картинки, и если в цикле выводить $e то выводятся их имена. Но почему-то не заносятся в массив $filename.
Если посмотреть код страницы, то там показывается только это:
<img src="up/.jpg"> | |
|
|
|
|
|
|
|
для: (Sandr)
(13.06.2011 в 19:55)
| | Проверьте корректно ли открывается директория
<?php
...
$cfile=opendir("$imgdir");
if(!$cfile) exit("Невозможно открыть директорию");
...
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(13.06.2011 в 20:54)
| | Да, корректно.
Сейчас попробовал другой способ:
$dir="up/";
$scan = scandir($dir);
$ranfile = mt_rand(1, count($scan));
echo '<img src="'.$dir.$scan[$ranfile].'"><br>';
echo count($scan);
Но вот почему-то картинки не всегда выводятся. И count($scan); выводит 5, хотя всего картинок 3. | |
|
|
|
|
|
|
|
для: (Sandr)
(13.06.2011 в 21:27)
| | 5 из-за того что считаются временные директории . и .. - их нужно убрать из массива $scan. | |
|
|
|
|
|
|
|
для: cheops
(13.06.2011 в 21:40)
| | $ranfile = mt_rand(2, count($scan));
Сделал так. Но всё равно то выводит, то не выводит. | |
|
|
|
|
|
|
|
для: (Sandr)
(13.06.2011 в 21:44)
| | Всё, решил проблему. Т.к. count($scan) равен 5, то и выводились элементы с номерами 2345, а элемента 5 не существует)) | |
|
|
|