|
|
|
| Добрый день!
Столкнулся с такой проблемой.
Нужно написать скрипт, который открывает папку foto, подсчитываю количество файлов(картинки). И потом их нужно рандом вывести. Помогите осуществить..
Зарание благодарен... | |
|
|
|
|
|
|
|
для: restall
(12.06.2007 в 17:32)
| | рандом вывести -> рандомную или все. но перемешанные? | |
|
|
|
|
|
|
|
для: restall
(12.06.2007 в 17:32)
| | В пятой версии PHP прочитать папку можно функцией scandir - получим массив. count посчитает количество файлов. Потом c помощью shuffle можно массив перемешать и выводить.
В ранних версиях папку можно прочесть используя opendir, readdir, closedir. (также считать все в массив и перемешать)
Также можно воспользоваться ф-ей glob.
Вводите в адресной строке http://php.net/имя_интересуемой_функции, читайте (там на русском и с примерами). Если что-то не понятно - спрашивайте. | |
|
|
|
|
|
|
|
для: restall
(12.06.2007 в 17:32)
| |
<?
//Папка с фотографиями
$dir = $_SERVER['DOCUMENT_ROOT'].'/foto/';
//Получаем содержимое папки
$files = glob($dir.'*.jpg');
//Колличество картинок
echo 'Всего '.count($files).' картинок';
//Перемешиваем (чтобы выводилось в случайном порядке)
$files = shuffle($files);
//и выводим по одной картинке
foreach($files as $file)
echo '<img src="'.$file.'">';
?>
|
| |
|
|
|
|
|
|
|
для: Temnovit
(12.06.2007 в 17:50)
| | Так, файлы подсчитывает. Это уже харашо, а вот с выводом - проблемы.
Invalid argument supplied for foreach() | |
|
|
|
|
|
|
|
для: restall
(12.06.2007 в 17:57)
| | Или shuffle($files); только в 5 версии? Как в 4 сделать? | |
|
|
|
|
|
|
|
для: restall
(12.06.2007 в 17:58)
| | Она не возвращает перемешанный массив. Она издевается над тем, что ей подсунули :)
Замените "$files = shuffle($files);" на "shuffle($files);"
зыж она работает с третей версии... | |
|
|
|
|
|
|
|
для: kasmanaft
(12.06.2007 в 18:00)
| | Всем спасибо, подправил так, как мне было нужно. Вот что вышло:
<?
//Папка с фотографиями
$dir = $_SERVER['DOCUMENT_ROOT'].'/foto/';
//Получаем содержимое папки
$files = glob($dir.'*.jpg');
//Колличество картинок
echo 'Всего '.count($files).' картинок';
//Перемешиваем (чтобы выводилось в случайном порядке)
$to=count($files);
//и выводим по одной картинке
$ran=rand(1,$to);
echo '<img src="foto/'.$ran.'.jpg">'
?>
у меня все файлы от 1 до Н...
А вот как сделать ,чтобы не числами, а просто рандом одну выводило?
Если допустим файлы у меня не 1.jpg, 2.jpg.... | |
|
|
|
|
|
|
|
для: restall
(12.06.2007 в 18:07)
| | Выводите $files[$ran-1] | |
|
|
|
|
|
|
|
для: kasmanaft
(12.06.2007 в 18:10)
| | Вот что получислось! Всем пасибо!
<?
//Папка с фотографиями
$dir = $_SERVER['DOCUMENT_ROOT'].'/foto/';
//Получаем содержимое папки
$files = glob($dir.'*.jpg');
//Колличество картинок
echo 'Всего '.count($files).' картинок';
//Перемешиваем (чтобы выводилось в случайном порядке)
$to=count($files);
//и выводим по одной картинке
$ran=rand(1,$to);
echo '<img src="'.$files[$ran-1].'">';
?>
|
| |
|
|
|
|
|
|
|
для: restall
(12.06.2007 в 18:19)
| | коментарии к коду живут отдельной половой жизнью.... | |
|
|
|