Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подсчет картинок в файле, вывод рандом. Как?
 
 автор: restall   (12.06.2007 в 17:32)   письмо автору
 
 

Добрый день!
Столкнулся с такой проблемой.
Нужно написать скрипт, который открывает папку foto, подсчитываю количество файлов(картинки). И потом их нужно рандом вывести. Помогите осуществить..
Зарание благодарен...

   
 
 автор: bronenos   (12.06.2007 в 17:44)   письмо автору
 
   для: restall   (12.06.2007 в 17:32)
 

рандом вывести -> рандомную или все. но перемешанные?

   
 
 автор: kasmanaft   (12.06.2007 в 17:48)   письмо автору
 
   для: restall   (12.06.2007 в 17:32)
 

В пятой версии PHP прочитать папку можно функцией scandir - получим массив. count посчитает количество файлов. Потом c помощью shuffle можно массив перемешать и выводить.

В ранних версиях папку можно прочесть используя opendir, readdir, closedir. (также считать все в массив и перемешать)

Также можно воспользоваться ф-ей glob.

Вводите в адресной строке http://php.net/имя_интересуемой_функции, читайте (там на русском и с примерами). Если что-то не понятно - спрашивайте.

   
 
 автор: Temnovit   (12.06.2007 в 17:50)   письмо автору
 
   для: 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.'">';
?>

   
 
 автор: restall   (12.06.2007 в 17:57)   письмо автору
 
   для: Temnovit   (12.06.2007 в 17:50)
 

Так, файлы подсчитывает. Это уже харашо, а вот с выводом - проблемы.
Invalid argument supplied for foreach()

   
 
 автор: restall   (12.06.2007 в 17:58)   письмо автору
 
   для: restall   (12.06.2007 в 17:57)
 

Или shuffle($files); только в 5 версии? Как в 4 сделать?

   
 
 автор: kasmanaft   (12.06.2007 в 18:00)   письмо автору
 
   для: restall   (12.06.2007 в 17:58)
 

Она не возвращает перемешанный массив. Она издевается над тем, что ей подсунули :)
Замените "$files = shuffle($files);" на "shuffle($files);"

зыж она работает с третей версии...

   
 
 автор: restall   (12.06.2007 в 18:07)   письмо автору
 
   для: 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....

   
 
 автор: kasmanaft   (12.06.2007 в 18:10)   письмо автору
 
   для: restall   (12.06.2007 в 18:07)
 

Выводите $files[$ran-1]

   
 
 автор: restall   (12.06.2007 в 18:19)   письмо автору
 
   для: 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].'">';
?> 

   
 
 автор: Trianon   (12.06.2007 в 22:07)   письмо автору
 
   для: restall   (12.06.2007 в 18:19)
 

коментарии к коду живут отдельной половой жизнью....

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования